C++ 在OpenGL中播放动画

C++ 在OpenGL中播放动画,c++,opengl,fltk,C++,Opengl,Fltk,只是想把延迟几微秒,这样我就可以看到我的动画。延迟功能不工作。我正在使用fltk,所以任何与之相关的东西都会有所帮助 for(i = 0; i < 1; i = i + 0.1) { glClearColor(0.0f, 0.0f, 0.0f, 1.0f ); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(i,i,1); glR

只是想把延迟几微秒,这样我就可以看到我的动画。延迟功能不工作。我正在使用fltk,所以任何与之相关的东西都会有所帮助

for(i = 0; i < 1; i = i + 0.1)
{ 
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f );
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glLoadIdentity();
    glTranslatef(i,i,1);
    glRotatef(spin, 0, 0, 1);
    delay(1000);
    glScalef(i,i,i);
    glutWireCube(1);        
}

在OpenGL中,您不能以这种方式播放动画。从技术上讲,您可以在循环的末尾放置一个SwapBuffers,但这不是一个好主意

您应该做的是实现一个空闲处理程序,它在调用时发出重画。在绘图函数中,您应该对调用display函数之间的时间进行计时,以使动画前进该数量


从来没有!运行一个循环,在其中添加睡眠或类似设置。这样的代码不响应外部事件,而现代OS将考虑这样的程序表现为无响应/挂起,并向用户显示允许杀死程序的消息框。这不是您想要的。

在OpenGL中,您不能以这种方式播放动画。从技术上讲,您可以在循环的末尾放置一个SwapBuffers,但这不是一个好主意

您应该做的是实现一个空闲处理程序,它在调用时发出重画。在绘图函数中,您应该对调用display函数之间的时间进行计时,以使动画前进该数量


从来没有!运行一个循环,在其中添加睡眠或类似设置。这样的代码不响应外部事件,而现代OS将考虑这样的程序表现为无响应/挂起,并向用户显示允许杀死程序的消息框。这不是你想要的。

你能举个例子吗。所以你基本上是想让你的代码为你编写@user1733735@user1733735:编写一些示例代码需要知道您的运行时环境。如何创建OpenGL上下文?您使用哪些框架?你的程序的总体结构是什么?我使用的是Visual studio 2010。我用过FLTK,opengl,我的绘图函数中有这段代码。你能给我举个例子吗?你基本上是想让你的代码为你写的@user1733735@user1733735:编写一些示例代码需要知道您的运行时环境。如何创建OpenGL上下文?您使用哪些框架?你的程序的总体结构是什么?我使用的是Visual studio 2010。我使用了FLTK,opengl,我的绘图函数中有这段代码。发生的是我的动画被画在一起。我想要的是它应该画一个然后延迟,然后再画另一个。发生的是我的动画被画在一起。我想要的是它应该画一个然后延迟,然后再画另一个。