我正在制作一个由sinewave
移动圆圈生成的glutWireTorus
小动画。
然而,我在圈子中使用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;
}
}
时遇到了一个奇怪的问题。即使当我注释掉所有其他绘图代码并让环面单独沿z轴移动时,我的内部也会出现闪烁的线条:
这是显示所有内容的显示功能。我使用显示功能作为我的空闲功能,我也通过创建一个空闲功能并将更新代码放在那里来检查是否存在这个问题,但它仍然存在。
{{1}}
答案 0 :(得分:0)
glutWireTorus(/*innerRadius*/0.3, /*outerRadius*/0.5, /*nsides*/32, /*rings*/32);
使用参数
的另一张照片glutWireTorus(/*innerRadius*/0.3, /*outerRadius*/0.5, /*nsides*/64, /*rings*/128);
我们不知道为什么没有 glutWireTorus 函数实现,但我们可以实现自己的环面,或者有人可以解释它?