我正在制作一个sinewave
由类似于此gif的移动圆圈生成的小动画。
但是,我在使用glutWireTorus
for the circle 时遇到了一个奇怪的问题。即使我注释掉所有其他绘图代码并让圆环单独沿着 z 轴移动,我也会在它的内部看到闪烁的线条:
这是绘制所有内容的显示功能。我使用显示功能作为我的空闲功能,此外,我通过创建一个空闲功能并将我的更新代码放在那里检查了这是否是问题,但它仍然存在。
void display(void)
{
glClearColor(0.f,0.f,0.f,0.f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // clear the color buffer
and the depth buffer
glLoadIdentity();
glTranslatef(0.0f,0.0f,-5.0f); //Push everything back 5 units into the scene,
otherwise we won't see the primitive
camera();
//yPrev = myCircle.y;
glPushMatrix();
glTranslatef(0.0f,0.0f,t);
glutWireTorus(0.02,1,100,100);
glPopMatrix();
DrawAxes();
glutSwapBuffers(); //swap the buffers
glFlush();//Flush the OpenGL buffers to the window
t-=0.002;
if (t < -T)
{
t = 0;
}
}