我正在尝试不同颜色并排绘制2个正方形,我的问题是我无法通过glTranslatef将第二个方块向右移动,第二个方块只是在第一个方块上方。
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glPointSize(10);
glBegin(GL_QUADS);
glColor3f(0.0,1.0,0.0);
drawSquare();
glTranslatef(10,0,0);
glColor3f(1.0,0.0,0.0);
drawSquare();
glEnd();
glFlush(); // Process all OpenGL routines
}
void drawSquare()
{
glVertex3f(0,0,0);
glVertex3f(10,0,0);
glVertex3f(10,10,0);
glVertex3f(0,10,0);
}
答案 0 :(得分:8)
您无法在glBegin/glEnd
区块内进行翻译,而是将其分解为两个区块。
我建议您在代码中使用glGetError()
,它会帮助您找到这样的错误。
答案 1 :(得分:7)
glBegin和glEnd之间只允许某个OpenGL命令子集。因此,当您在这两个调用之间调用glTranslate时,它将被忽略。
从显示中删除glBegin和glEnd,然后输入drawSquare - 这应该可行。