(1)如果用定时器的话,初始的时候注册一个定时器的回调函数,原型是
glutTimerFunc(unsigned int millis, void (*func)(int value), int value);
参数对应关系为:glutTimerFunc(毫秒数, 回调函数指针, 区别值);
(2)写自己的回调函数 void OnTimer(int value);
用value区分是哪个定时器
(3)在函数里改变和位置有关的变量,然后调用glutPostRedisplay();用来重绘
(4)最后再次调用glutTimerFunc,因为glut的定时器是调用一次才产生一次定时,所以如果要持续产生定时的话,在定时函数末尾再次调用glutTimerFunc
如在main函数中有如此调用:
glutTimerFunc(500, TimerFunc, 1);
我们的 TimerFunc的定义应该这样写:
void TimerFunc(int value)
{
glutPostRedisplay();
glutTimerFunc(100, TimerFunc, 1);
}
本文详细介绍了如何使用GLUT库中的定时器功能实现周期性的屏幕重绘。具体步骤包括:初始化定时器并设置回调函数,通过回调函数内的逻辑更新画面内容,并重新触发绘制过程,确保定时器的持续运行。
1643

被折叠的 条评论
为什么被折叠?



