[英]Glut Open GL object wont animate
我的多边形不会移动,我尝试了很多事情,我认为glClear(GL_COLOR_BUFFER_BIT);
或glutMainLoop();
不会做他们的工作。 因此,第一张图片保持不变。 没有动画。
float x=0;
float y=0;
float b=0;
void displayCB(void)
{
glClear(GL_COLOR_BUFFER_BIT);
kvadrat();
}
void kvadrat()
{
glBegin(GL_POLYGON);
glColor3f(1, 0, 0); glVertex2d(0.5-x, 0.5-y);
glColor3f(1, 0, 0); glVertex2d(0.5-x, -0.5-y);
glColor3f(1, 0, 0); glVertex2d(-0.5-x, -0.5-y);
glColor3f(1, 0, 0); glVertex2d(-0.5-x, 0.5-y);
glEnd();
Sleep(1999);
glFlush();
x=x+0.01; // I modified this value so it will always be between 0.5 and -0.5,
//this is just example
}
int main(int argc, char *argv[])
{
int win;
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB);
glutInitWindowSize(800,600);
win = glutCreateWindow("Elementi");
glClearColor(0.0,0.0,0.0,0.0);
glutDisplayFunc(displayCB);
glutKeyboardFunc(keyCB);
glutMainLoop();
return 0;
}
我认为您可能每两秒钟仅以很小的增量移动位置,因此图像看起来是静态的,但不是,只是变化非常缓慢。 尝试取出Sleep(1999),看看动画是否效果更好。
如果需要随时间进行动画处理,最好改用glutGet(GLUT_ELAPSED_TIME)找出自上一帧以来已经经过了多少时间,并用它来缩放增量。
我修复了glutPostRedisplay();
问题glutPostRedisplay();
//通知GLUT显示已更改
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.