opengl计算机图形学实验报告之3D漫游世界.docVIP

  • 86
  • 0
  • 约3.85千字
  • 约 6页
  • 2017-06-12 发布于北京
  • 举报

opengl计算机图形学实验报告之3D漫游世界.doc

北师大珠海分校信息技术学院 计算机图形学实验报告 实验报告文件命名方式:学号姓名_实验序号_实验名称.doc 姓名 学号 1001010092 专业 计算机 任课教师 黄静 实验教师 黄静 评阅教师 黄静 实验地点 丽泽C304-1 书写日期 2012.11.27 实验课时间 2012.11.26 实验得分 实验序号与名称:实验10交互的3D漫游世界 实验目的: 1) 进一步掌握3D编程概念: 2)主要掌握视点和目标的改变对场景生成的影响 3)掌握3D漫游场景的基本技巧 实验开发环境: 硬件要求: PC机,主流配置,最好为独立显卡,显存512M以上。 软件环境: 操作系统:Windows XP。 语言开发工具:Microsoft Visual studio 2008,Visual C++。 并安装OpenGL图形函数库 实验要求: 1.当场检查,计现场分 2.实验所有步骤所生成的效果截图拷贝到实验报告文档里备查,并附上相应的代码。 WORD文档命名方式:学号姓名-实验序号-实验名称。 实验内容与步骤小结、主要截图、核心代码实现: 比例:50% 附属程序rotating_torus.cpp为一视点保持不变的3D旋转程序,3D场景为一个圆环、一个小球和一个以四边形为基本单位的方块墙包围盒,且小球和圆环在“方块墙”的包围盒中。视点设在正前方观察物体,小球绕着环心某处不停旋转,并和圆环一起绕着环心不停旋转。 添加键盘响应函数,使得: 1、按键盘的”W”,”S”键,可实现视点前后移动(直走:前进倒退)”A”,”D”键,可实现视点左右旋转(左看右看);(此时应该视点固定,目标点围绕视点旋转,视点与目标点的距离仍然保持不变) 3. 视点左右旋转一定角度后,再按键盘的”W”,”S”键仍可实现视线直走,即沿着旋转后的视线方向行走。 4. 程序修改后观看效果,并用键盘验证。在实验报告中写出 前后直走 和左转右转的关键点和核心代码。 向前走和后退时此时应该视点与目标点的距离保持不变,且视线方向保持不变) 视点左右旋转(左看右看)时,此时应该视点固定,目标点围绕视点旋转,视点与目标点的距离仍然保持不变 void mykeyboard(unsigned char key, int x, int y)//重点在于视点和目标点的变化Y坐标不变化 { switch(key) { case W: case w:// 向前直走 //your code Here eyex=eyex-step*sin(angle*PI/180.0); eyez=eyez-step*cos(angle*PI/180.0); atx=atx-step*sin(angle*PI/180.0); atz=atz-step*cos(angle*PI/180.0); break; case S: case s://向后退 //your code Here eyex=eyex+step*sin(angle*PI/180.0); eyez=eyez+step*cos(angle*PI/180.0); atx=atx+step*sin(angle*PI/180.0); atz=atz+step*cos(angle*PI/180.0); break; case A: case a://左看 //your code Here angle+=1; atx=eyex-r*sin(angle*PI/180.0); atz=eyez-r*cos(angle*PI/180.0); break; case D: case d://右看 //your code Here angle-=1; atx=eyex-r*sin(angle*PI/180.0); atz=eyez-r*cos(angle*PI/180.0); break; } glutPostRedisplay();//参数修改后调用重画函数,屏幕图形将发生改变 } glPushMatrix(); glColor3f(0,0,1); glTranslatef(0,0,0); glRotatef(theta,1,0,0);// glTranslatef(0,0,0); glutWireTeapot(30); //线框模式 glPopMatrix(); 添加在void drawsphere()中的最后 6 修改场景,在场景既定的位置增加自己想要的3D物体,效果截图,核心代码贴到实验报告中。 void drawsphe

文档评论(0)

1亿VIP精品文档

相关文档