1

只想延迟几微秒,这样我就可以看到我的动画了。延迟功能不起作用。我正在使用 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);        
}
4

1 回答 1

4

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

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

Never(!)运行一个循环,在该循环中添加睡眠或类似内容。这样的代码对外部事件没有响应,现代操作系统会将表现出类似行为的程序视为无响应/挂起,并向用户显示允许终止程序的消息框。这不是你想要的。

于 2013-04-06T00:34:37.857 回答