- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机图形学实验报告
版本号:1.1
单位: 国防科大计算机学院学员4队
成员: 陈 寅 200406020082
王雯霞 200406020084
谭雪岩 200406020077
2007年11月30日
目录
一、 文档变更 3
二、 小组成员 3
三、 场景设计 3
四、 开发环境 4
1. 硬件环境 4
2. 软件环境 4
五、 程序解读 4
1. 源代码文件组织 4
2. 程序结构 4
3. 关键代码 5
六、 运行效果 6
七、 实习收获 8
八、 课程建议 8
九、 参考资料 9
文档变更
表格 1
版本号 时间 变更内容 0.1 2007年10月9日 完成需求分析 0.2 2007年10月12日 加入软件设计 1.0 2007年10月25日 完善内容
形成文档初稿 1.1 2007年11月30日 修改开发文档
形成实验报告
小组成员
表格 2开发小组成员名单及分工
表格 3
CPU Intel(R) Pentium(R) 4 CPU 2.8GHz 内存容量 1024 MB 硬盘容量 80 GB 显卡 Intel(R) 82865G Graphics Controller
软件环境
表格 4
操作系统 WindowsXP Professional SP2 编程环境 Microsoft visual C++ 6.0 文字处理 Microsoft Word 2003
程序解读
源代码文件组织
程序文件结构图如下:
头文件:solar_system.h
主程序:solar_system.cpp
其中,solar_system.h包含了程序中要绘制的图形的参数,
例如轨道半径,行星半径等;solar_system.cpp负责控
制程序的运行。
程序结构
在程序编写过程中,我们借鉴了OpenGL编写教程《NEHES LESSONS》,因此程序的整体结构与其大致相同,主要函数为:
int InitGL(GLvoid);// 此处开始对OpenGL进行所有设置
int DrawGLScene(GLint scene, GLfloat ratio);// 从这里开始进行场景的绘制
int WINAPI WinMain(......);//控制程序的运行以及视点的移动
GLvoid Draw_satellite(); //绘制人造同步卫星
(具体代码请参见源代码)
关键代码
绘制整个场景
//################################绘制整个场景#############################
int DrawGLScene(GLvoid)
{
……
//显示制作人姓名,实现技术参考了相关资料
glPushMatrix();
……
glPrint(制作人:陈寅 王雯霞 谭雪岩);
glPopMatrix();
……
glPushMatrix();
//*************************绘制背景星空*****************************
//旋转星空背景
glRotatef(z_angle,0.0f,0.0f,1.0f);
z_angle += z_speed;
//将背景纹理映射到实际场景中一块区域
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,texture[0]);
glBegin(GL_QUADS);
glNormal3f(0.0f,0.0f,1.0f);
glTexCoord2f(0.0,0.0); glVertex3f(-20.0f,-20.0f,-7.0f);
……
glEnd();
//******************************************************************
//*************************绘制一彗星*******************************
//计算彗星位置
comet_position[0] += comet_velocity[0];
if(abs(comet_position[0]) 20) //防止彗星飞出场景
comet_position[0] = -3.0f;
……
//彗星由一个实心球(r = 0.075)和一个圆锥体构成
gluSphere(quadric,comet_radius,32,32);
glutSolidCone(comet_radius
文档评论(0)