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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
opengl计算机图形学实验报告之D漫游世界

北师大珠海分校信息技术学院 计算机图形学实验报告 实验报告文件命名方式:学号姓名_实验序号_实验名称.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物体,效果截图,核心代码贴到实验报告中。 vo

文档评论(0)

weixin98 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档