[OpenGL]用OpenGL制作动画

通过OpenGL技术,本文将展示如何创建动态效果,实现图形的平滑变化和运动,从而制作出生动的动画。从基本的顶点变换到复杂的帧缓冲操作,深入理解OpenGL动画原理。
摘要由CSDN通过智能技术生成
//在窗口内绘制一个移动的矩形
/*我们通常还可以用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 =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值