animating glutWireSphere
animating glutWireSphere
本文关键字:glutWireSphere animating 更新时间:2023-10-16
我如何获得一个电线球以保持静止,而另一个则翻译?
这是我的代码:
void animate ()
{
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode (GL_MODELVIEW);
glPushMatrix ();
glColor3f (1.0, 0.0, 0.0);
glutWireSphere (1.0, 20, 20);
glColor3f (0.0, 1.0, 0.0);
glPushMatrix ();
glTranslatef (0, 0.01, 0);
glutWireSphere (0.2, 20, 20);
glPopMatrix ();
glPopMatrix();
glFlush ();
glSwapBuffers ();
glutTimerFunc (10, animate);
}
目前发生的一切都是两个球体都是静止的。我想要的行为是让较大的红色球体保持静止,而较小的绿色球体则慢慢翻译。我在做什么错?
问题是,您在y轴上翻译每帧相同的数量。您的矩阵设置为每个帧的身份,因此您较小的绿色球体始终处于(0.0,0.01,0.0)
。
尝试跟踪位置并增加。
static float yPos = 0.0f;
glColor3f (0.0, 1.0, 0.0);
glPushMatrix ();
glTranslatef (0, yPos, 0);
glutWireSphere (0.2, 20, 20);
glPopMatrix ();
yPos += 0.01f;