【发布时间】:2023-03-20 11:51:02
【问题描述】:
我试图在固定时间间隔后依次旋转一个红色三角形和一个绿色三角形。试了下面的代码,时间间隔不是固定的,一直想不通。
static void display(void)
{
now=glutGet(GLUT_ELAPSED_TIME);
elapsedTime = now - interval;
if(flag)
{
if(now%3000==0)
{
flag=false;
}
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1,0,0);
glRotatef(0.1,0.0,0.0,1.0);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5f, 0.5f, -5.0f);
glVertex3f(-1.0f, 1.5f, -5.0f);
glVertex3f(-1.5f, 0.5f, -5.0f);
glEnd();
glutSwapBuffers();
}
else
{
if(now%3000==0)
{
flag=true;
}
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0,1,0);
glRotatef(-0.1,0.0,0.0,1.0);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5f, 0.5f, -5.0f);
glVertex3f(-1.0f, 1.5f, -5.0f);
glVertex3f(-1.5f, 0.5f, -5.0f);
glEnd();
glutSwapBuffers();
}
}
【问题讨论】: