//在窗口内绘制一个移动的矩形
/*我们通常还可以用OpenGL程序创建动画效果,这里我们利用前面的例子,
绘制正方形,并使这个正方形在窗口的边框反弹。
这里需要创建一个循环,在每次调用显示回调函数之前改变正方形的位置,
使其看起来像在窗口中移动。为了不断的显示回调函数
,需要GLUT库中的函数:glutTimerFunc(unsigned int msecs,(*func)(int value),int value);
该函数用于指定一个定时器回调函数,
即经过msecs毫秒后由GLUT调用指定的函数,并将value值传递给它。
被定时器调用的函数原型如下:void TimerFunction(int value);
注意,该函数与其他的回调函数不一样的地方在于该函数只会被激发一次。
为了实现联系的动画,必须在定时器函数中再次重新设定定时器回调函数。
*/
#include <gl/glut.h>
//正方形的位置和大小
GLfloat x1 = 100.0f;
GLfloat y1 = 150.0f;
GLsizei rsize = 50;
//正方形运动变化的步长
GLfloat xstep = 1.0f;
GLfloat ystep = 1.0f;
//窗口的大小
GLfloat windowWidth;
GLfloat windowHeight;
void RenderScene()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f,0.0f,0.0f);
glRectf(x1,y1,x1+rsize,y1+rsize);
glutSwapBuffers();//清空命令缓冲区并交换帧缓存
}
void ChangeSize(GLsizei w,GLsizei h)
{
if (h == 0)
{
h =
[OpenGL]用OpenGL制作动画
最新推荐文章于 2024-06-26 09:31:59 发布
通过OpenGL技术,本文将展示如何创建动态效果,实现图形的平滑变化和运动,从而制作出生动的动画。从基本的顶点变换到复杂的帧缓冲操作,深入理解OpenGL动画原理。
摘要由CSDN通过智能技术生成