资源描述:
《第9章课后习题参考答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第九章习题参考答案1.基于TurboC环境进行动画编程可以采用哪些方法?(1)全局画擦画:cleardevice()(2)局部画擦画:getimage()putimage()(3)页切换:setactivepage()setvisualpage()(4)延时:delay()(5)函数式(6)图形变换2.简要说说你对OpenGL及OGRE的认识?(1)GL是美国SGI公司为图形工作站开发的一种功能强大的三维图形机制,经过长期发展,在跨平台移植的过程中,由GL扩充形成了OpenGL,目前,它已经成为高性能图形和交互式视景处理的工业标准。有了OpenGL的帮助,编程
2、者可以轻松地进行三维动画的程序设计。OpenGL提供的相关库有:1)OpenGL核心库(GL)2)OpenGL实用库(GLU)3)OpenGL辅助库(GLAUX)4)OpenGL工具库(GLUT)5)OpenGL对窗口系统的扩展(WGL,等等)对于各个库,函数功能可分为两大类:渲染功能,提供图形绘制所需的各种功能函数;窗口管理功能,管理窗口系统的所有相关功能,如键盘鼠标的响应,各种窗口事件等等。(2)OGRE(Object-orientedGraphicsRenderingEngine,面向对象的图形渲染引擎)是国际上知名的开源图形渲染引擎。OGRE是用C++
3、开发的面向对象且使用灵活的3D引擎,它的目的是让编程者能更容易开发基于3D的动画或游戏等应用程序。引擎中的类库对更底层的系统库(如OpenGL或Direct3D)的全部使用细节进行了简化封装和抽象,同时提供基于现实世界的对象接口以及其它非常有用的工具类。因此,利用OGRE引擎来进行动画编程可以提高开发的效率,并且一般情况下要比基于OpenGL的动画编程还简单些。3.基于TurboC环境编写模拟自由落体的动画。#include#include#defineg10main(){intx=320,y,t;intgdriver=D
4、ETECT,gmode;initgraph(&gdriver,&gmode,"");cleardevice();setcolor(15);do{for(t=0;t<10;t++){y=0.5*g*t*t;circle(x,y,20);delay(50000);cleardevice();}for(t=0;t<10;t++){y=405-(90*t-0.5*g*t*t);circle(x,y,20);delay(50000);cleardevice();}}while(!kbhit());closegraph();}4.编写基于OpenGL图形库的VisualC
5、++程序,内容为旋转一茶壶的三维动画。#include#include#includestaticfloatrot=0.0f;voidinit(void){glClearColor(0.0,0.0,0.0,0.0);glShadeModel(GL_SMOOTH);glEnable(GL_DEPTH_TEST);}voiddisplay(void){glClear(GL_COLOR_BUFFER_BIT
6、GL_DEPTH_BUFFER_BIT);glLoadIdentity();gluLookAt(0
7、.0f,1.5f,5.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f);glBegin(GL_QUADS);glColor3f(1.0f,0.0f,0.0f);glNormal3f(0.0f,1.0f,0.0f);glVertex3f(-2.5f,-0.75f,2.5f);glVertex3f(2.5f,-0.75f,2.5f);glVertex3f(2.5f,-0.75f,-2.5f);glVertex3f(-2.5f,-0.75f,-2.5f);glEnd();glRotatef(rot,0.0f,1.0f,0.0f);glColor3f
8、(1.0f,1.0f,1.0f);glutSolidTeapot(1.0f);rot+=0.1f;glutSwapBuffers();}voidreshape(intwidth,intheight){glViewport(0,0,width,height);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);glMatrixMode(GL_MODELVIEW);glLoadIdentity();
9、}voidkeyboard(unsig