实验四 opengl的简单动画与交互

实验四 opengl的简单动画与交互

ID:10264270

大小:156.00 KB

页数:7页

时间:2018-06-14

实验四 opengl的简单动画与交互_第1页
实验四 opengl的简单动画与交互_第2页
实验四 opengl的简单动画与交互_第3页
实验四 opengl的简单动画与交互_第4页
实验四 opengl的简单动画与交互_第5页
资源描述:

《实验四 opengl的简单动画与交互》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验四OpenGL的简单动画与交互一、实验目的1、学会OpenGL的简单键盘交互操作。2、掌握OpenGL鼠标交互功能及其简单应用。3、掌握OpenGL的闲置函数与简单动画。4、掌握反走样思想和算法。二、实验内容与要求1、在实验一(画矩形)的基础上添加键盘交互,按W键绘制的矩形上移,按S键矩形下移,按A键矩形左移,按D键矩形右移,如图3-1。参考步骤如下:(1)在主函数里添加键盘注册回调函数glutKeyboardFunc(mykeyboard);此函数可放在glutDisplayFunc(display);后面。(2)在display()绘制函数中修改绘制矩形代码,用变量代替数值

2、参数。例如:glRectf(-0.5,-0.5,0.5,0.5)改为glRectf(x1,y1,x2,y2);(3)在程序中增加mykeyboard键盘子函数,并在如下代码中进行修改,实现键盘控制矩形移动voidmykeyboard(unsignedcharkey,intx,inty){switch(key){case'W':case'w'://矩形对角坐标变量修改使得矩形上移break;case'S':case's'://矩形对角坐标变量修改使得矩形下移break;case'A':case'a'://矩形对角坐标变量修改使得矩形左移break;case'D':case'd'://

3、矩形对角坐标变量修改使得矩形右移break;}//参数修改后调用重画函数,屏幕图形将发生改变glutPostRedisplay();}2、闲置函数的使用与简单动画。旋转的六边形,如图3-3所示阅读OpenGL旋转的六边形样本框架程序rotate-polygon.cpp,分析程序的实现步骤://样本程序:旋转的六边形#include#include#definePI3.14159//设置圆周率intn=6,R=10;//多边形变数,外接圆半径floattheta=0.0;//旋转初始角度值voidKeyboard(unsignedcharkey,int

4、x,inty);voidDisplay(void);voidReshape(intw,inth);voidmyidle();voidmain(intargc,char**argv){glutInit(&argc,argv);//初始化GLUT库;glutInitWindowSize(700,700);//设置显示窗口大小glutInitDisplayMode(GLUT_DOUBLE

5、GLUT_RGB);//设置显示模式;(注意双缓冲)glutCreateWindow("ARotatingSquare");//创建显示窗口glutDisplayFunc(Display);//注册显示

6、回调函数glutReshapeFunc(Reshape);//注册窗口改变回调函数glutIdleFunc(myidle);//注册闲置回调函数glutMainLoop();//进入事件处理循环}voidDisplay(void){glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0,0,0);//设置红色绘图颜色glBegin(GL_POLYGON);//开始绘制六边形for(inti=0;i

7、Buffers();//双缓冲的刷新模式;}voidmyidle(){theta+=1.0;if(theta>=2*PI)theta-=2*PI;glutPostRedisplay();//重画,相当于重新调用Display(),改编后的变量得以传给绘制函数}voidReshape(GLsizeiw,GLsizeih){glMatrixMode(GL_PROJECTION);//投影矩阵模式glLoadIdentity();//矩阵堆栈清空gluOrtho2D(-1.5*R*w/h,1.5*R*w/h,-1.5*R,1.5*R);//设置裁剪窗口大小glViewport(0,0,w

8、,h);//设置视区大小glMatrixMode(GL_MODELVIEW);//模型矩阵模式}运行该程序,观察旋转动画效果。思考:如果要调整旋转速度,旋转更快或更慢,应该如何修改程序?图3-33、鼠标交互。(1)鼠标画线阅读OpenGL鼠标画线程序draw-lines.cpp,能够实现在绘制窗口用鼠标交互绘制若干条直线,鼠标左键首先按下,确定直线的起始点,鼠标左键按下同时移动,看到画线过程,鼠标左键松开时,确定直线的终点,可重复画多条直线。如图3-4所示。图3-4实

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。