打开GL对象不会动画
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();
的问题//通知GLUT显示已经改变
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 你能重载对象变量名本身返回的内容吗
- C++使用整数的压缩数组初始化对象
- 使用对象数组对 SFML 进行动画处理
- 使用增量时间的对象动画
- 无法在openGL和GLUT中为我想要的确切对象设置动画
- 对子类对象的数组进行动画处理
- 在Qt中设置大量对象动画的最简单方法
- 多个vtkPolyData对象的VTK动画
- 如何在OpenGL中处理包含多个对象的动画
- DirectX 9.0(世界坐标移动我的对象(三角形)动画
- 如何在不使用动画的情况下停止qgraphicsobject对象
- Opencv动画使用旋转矩阵旋转对象
- 如何传递一个c++对象变量到Lua脚本,以便动画精灵
- 打开GL对象不会动画