我有以下drawScene函数绘制球体。 X,Y的坐标一直在更新。据我所知,从printf看,值肯定会发生变化。
问题在于球体不会根据坐标改变位置,但总是在同一个地方绘制......
void drawScene(void){
//Clear information from last draw
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW); //Switch to the drawing perspective
glLoadIdentity(); //Reset the drawing perspective
glColor3d(1,0,0);
//glPushMatrix();///
glTranslated(X,Y,-7);//xyz//(X%5)-2.5,Y%5//(((X%6)-3),0,-7)
printf("\n\n\nCOORDS(X)%d (Y):%d\n\n\n\n",X,Y);
glutSolidSphere(0.3, 25, 20);//3,20,20
//glPopMatrix();///
glutSwapBuffers(); //Send the 3D scene to the screen
}
PS。我不确定这是否正确,但每当我想要更新openGL窗口时,我都会调用drawScene(),否则它只被绘制一次。
答案 0 :(得分:0)
更新X和Y时调用glutPostRedisplay()或像这样启用idleFunc:
void idle()
{
glutPostRedisplay();
}
并在主要内容中添加:
glutIdleFunc(idle);