- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计挑战式课程设计报告
- PAGE 15 -
作业名称:
观察行星的运行
学 院:
教育实验学院
班 级:
HC001505
学 号:
2015300074
姓 名:
祖陆晗
团队组成:
祖陆晗
西北工业大学
DATE \@ yyyy年M月d日 2016年1月8日
请填写以下十项内容,将表格按页对齐(插入空行),勿删除任何部分。
1、问题与背景(描述程序所要解决的问题或应用背景)
在物理课的学习中,当涉及到天体物理学的知识时,往往需要直观的观察天体的运行来加深对知识的理解。本程序基于Windows界面编程下的OpenGL图形函数库,设计了一个Windows窗口程序,实现了OpenGL太阳系八大星系和月球运行轨迹的表现。
2、开发工具(列出所使用的开发工具和第3方开发库)
Visual C++ 6.0
OpenGL图形函数库
3、主要功能(详细说明程序的功能)
用Windows窗口程序实现OPENGL太阳系八大行星和月球运行轨迹的表现。
4、设计内容(详细描述解决问题的原理和方法、算法、数据结构等)
一.程序的整体结构 :
1、在编程框架基础上使用OpenGL,需要包含以下头文件:
#include windows.h // Windows头文件
#include gl\glu.h // OpenGL实用头文件
2、OpenGL绘制场景的框架
(1)头文件 包含所有头文件或链接库文件
(2)全局定义 应用实例、主窗口变量、数据结构等全局定义,固定不变
(3)窗口过程 窗口过程函数的实现,固定不变
(4)注册窗口类 注册窗口类函数的实现,除非修改窗口属性,一般不动
(5)初始化窗口 初始化窗口函数的实现,除非修改窗口初始化值,一般不动
(6)消息处理函数原型 给出所有消息处理函数的原型,增加/删除消息处理时变动
(7)消息循环 Windows应用程序主消息循环,一般不动
(8)消息处理函数实现 在这编写消息处理函数
(9)主函数 Windows应用程序基本结构,一般不动
3. 在框架下,在Display函数中绘制图形文字。
二、 程序的流程
1、 根据用户设置配置OpenGL的窗口
2、 创建OpenGL运行的窗口
3、 程序循环,运行Display绘图函数,显示图形
4、 退出程序
5、程序文件与工程名称(标出程序中所有文件名、工程名称及其说明)
文件夹:程序运行截图
.C:观察行星的运行
应用程序:观察行星的运行
Word文件:观察行星的运行程序报告
6、函数模块(程序中各个函数的原型声明及其说明)
一,首先定义一个数据结构,定义八大行星及月球的旋转角度以及旋转中心。
static GLfloat xRot = 0.0f;
static GLfloat yRot = 0.0f;
static float fMoonRot=0.0f;
static float fWaterRot=0.0f;
static float fGoldRot=0.0f;
static float fEarthRot=0.0f;
static float fFireRot=0.0f;
static float fWoodRot=0.0f;
static float fSoilRot=0.0f;
static float fSkyRot=0.0f;
static float fSeaRot=0.0f;
二,定义颜色数组
GLfloat whiteLight[] = { 0.2f, 0.2f, 0.2f, 1.0f };//白色光
GLfloat lightPos[] = { 0.0f, 0.0f, 0.0f, 1.0f };
三,设置窗口
void ChangeSize(int w, int h)
{
GLfloat fAspect;
// 防止被0所除
if(h == 0) h = 1;
// 把视口设置为窗口大小
glViewport(0, 0, w, h);
fAspect = (GLfloat)w/(GLfloat)h; //实际窗口的纵横比
// 重置透视坐标系统
glMatrixMode(GL_PROJECTION); //还有一个参数是L_MODELVIEW
glLoadIdenti
您可能关注的文档
最近下载
- 教你如何破解软件OD破解软件OD使用教程.doc VIP
- 施工重大危险源辨识与防控措施月报表.pdf VIP
- 人教版(部编版)小学语文五年级上册 圆明园的毁灭第二课时 名师教学PPT课件.pptx VIP
- 一体机-柯尼卡美能达-bizhubC220说明书.pdf VIP
- BS EN 60079-32-2-2015 国外国际规范.pdf VIP
- 急诊科患者转运途中突然病情变化应急预案.pptx VIP
- G30连云港至霍尔果斯高速景家口至清水驿段扩容改造报告书.pdf VIP
- 股骨粗隆间骨折护理查房——护理问题及措施与健康指导.ppt VIP
- 零星工程 投标方案(技术方案).docx
- 一种比色法检测金黄色葡萄球菌活菌的Cu-MOF材料及其制备方法和应用.pdf VIP
文档评论(0)