a1136519154 2014-10-11 05:24
浏览 1569

初学OpenGL,照着书上的代码画出来只有一个红色三角形

去掉画三角形的代码也看不见四边形和圆形
#include
#include
#include
#define NUM 200 //绘制圆时用的顶点数
GLfloat r=1.0f; //圆半径
void DrawSceneGL(void){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除颜色及深度缓存
glLoadIdentity();
glColor3f(1.0f,0.0f,0.0f); //设置画笔颜色
glBegin(GL_TRIANGLES); //画三角形
glVertex3f(0.0f,1.0f,0.0f);
glVertex3f(-1.0f,-1.0f,0.0f);
glVertex3f(1.0f,-1.0f,0.0f);
glEnd();
glTranslatef(-1.5f,1.0f,-7.0f); //移动坐标
glTranslatef(3.0f,0.0f,0.0f);
glColor3f(0.0f,0.0f,1.0f); //设置画笔为蓝色
glBegin(GL_QUADS); //画四边形
glVertex3f(-1.0f,1.0f,0.0f);
glVertex3f(-1.0f,-1.0f,0.0f);
glVertex3f(1.0f,-1.0f,0.0f);
glVertex3f(1.0f,1.0f,0.0f);
glEnd();
glColor3f(1.0f,1.0f,0.0f);
glTranslatef(-1.5f,-2.5f,0.0f);
glLineWidth(2.0f); //画黄色线
glBegin(GL_LINES);
glVertex2f(-1.0f,0.0f);
glVertex2f(-1.0f,0.0f);
glEnd();
glBegin(GL_LINE_LOOP); //画圆
for(int i=0;i<NUM;i++)
glVertex3f(r*float(sin(2*3.14*i/NUM)),r*float(cos(2*3.14*i/NUM)),0.0);
glEnd();
glFlush();
}

int main(int argc,char ** argv){
glutInit(&argc,argv);
//glutInitWindowPosition(200,200);
glutCreateWindow("few example");
glutDisplayFunc(DrawSceneGL);

glutMainLoop();
return(0);

}

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作
    • ¥15 求NPF226060磁芯的详细资料