opengl实现二维的简单动画Word格式文档下载.docx

上传人:b****1 文档编号:13161892 上传时间:2022-10-07 格式:DOCX 页数:4 大小:10.88KB
下载 相关 举报
opengl实现二维的简单动画Word格式文档下载.docx_第1页
第1页 / 共4页
opengl实现二维的简单动画Word格式文档下载.docx_第2页
第2页 / 共4页
opengl实现二维的简单动画Word格式文档下载.docx_第3页
第3页 / 共4页
opengl实现二维的简单动画Word格式文档下载.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

opengl实现二维的简单动画Word格式文档下载.docx

《opengl实现二维的简单动画Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《opengl实现二维的简单动画Word格式文档下载.docx(4页珍藏版)》请在冰豆网上搜索。

opengl实现二维的简单动画Word格式文档下载.docx

GLfloatxstep=1.0f;

GLfloatystep=1.0f;

//窗口的大小(使用逻辑笛卡尔坐标系统)

GLfloatwindowWidth;

GLfloatwindowHeight;

//绘制场景(显示回调函数)

voidRenderScene()

{

//OpenGL命令,清除颜色缓冲区(使用当前设置的颜色)

glClear(GL_COLOR_BUFFER_BIT);

//把当前绘图颜色设置为红色

glColor3f(1.0f,0.0f,0.0f);

//OpenGL命令,用当前的绘图颜色绘制一个填充矩形(提供左上角和右下角的顶点坐标)

glRectf(x1,y1,x1+rsize,y1-rsize);

//刷新绘图命令,此时所有未执行的OpenGL命令被执行

glutSwapBuffers();

}

//由GLUT函数库调用,计时器函数

voidTimerFunction(intvalue)

//在到达右边或者左边时翻转方向,这里的边界选取要结合裁剪区域的定义

if(x1>

windowWidth-rsize||

x1<

-windowWidth){

xstep=-xstep;

}

//在到达上边或者下边时翻转方向,这里的边界选取要结合裁剪区域的定义

if(y1>

windowHeight||

y1<

-windowHeight+rsize){

ystep=-ystep;

//移动方块

x1+=xstep;

y1+=ystep;

//检查边界,防止方块在反弹时窗口变小,使方块出现在新的裁剪区域之外

(windowWidth-rsize+xstep)){

x1=windowWidth-rsize-1;

}elseif(x1<

-windowWidth-xstep){

x1=-windowWidth-1;

(windowHeight+ystep)){

y1=windowHeight-1;

}elseif(y1<

-windowHeight+rsize-ystep){

y1=-windowHeight+rsize-1;

//使用新的坐标重新绘制场景

glutPostRedisplay();

//重新设置计时器函数

glutTimerFunc(33,TimerFunction,1);

//设置渲染状态

voidSetupRC()

//设置用于清除窗口的颜色

glClearColor(0.0f,0.0f,1.0f,1.0f);

//当窗口大小改变时由GLUT函数库调用

voidChangeSize(GLsizeiw,GLsizeih)

//纵横比

GLfloataspectRatio;

//防止被0所除

if(0==h){

h=1;

//设置视口为窗口的大小

glViewport(0,0,w,h);

//选择投影矩阵,并重置坐标系统

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

//计算窗口的纵横比(像素比)

aspectRatio=(GLfloat)w/(GLfloat)h;

//定义裁剪区域(根据窗口的纵横比,并使用正投影)

if(w<

=h){//宽<

windowWidth=100.0;

windowHeight=100.0/aspectRatio;

glOrtho(-100.0,100.0,-100/aspectRatio,100/aspectRatio,1.0,-1.0);

}else{//宽>

windowWidth=100.0*aspectRatio;

windowHeight=100.0;

glOrtho(-100.0*aspectRatio,100.0*aspectRatio,-100.0,100.0,1.0,-1.0);

//选择模型视图矩阵,并重置坐标系统

glMatrixMode(GL_MODELVIEW);

intmain(intargc,char*argv[])

//传递命令行参数,并对GLUT函数库进行初始化

glutInit(&

argc,argv);

//设置创建窗口时的显示模式(双缓冲区、RGB颜色模式)

glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

//设置窗口的初始大小

glutInitWindowSize(480,320);

//创建窗口

glutCreateWindow("

Bounce"

);

//设置显示回调函数

glutDisplayFunc(RenderScene);

//设置当窗口的大小发生变化时的回调函数

glutReshapeFunc(ChangeSize);

//设置计时器函数

//设置渲染状态

SetupRC();

//启动GLUT框架的运行,一经调用便不再返回,直到程序终止

glutMainLoop();

return0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1