- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于opengl的3D天体运动模型设计方案1
基于opengl的3D天体运动模型
设计方案
学 生: ____???___
学 号: ************
指导老师: ___???___
一、背景简介
1.1设计概述
本3D建模设计运用Win32程序设计的基本原理,基于OpenGL接口函数,以Microsoft Visual Studio 2008为开发工具,以C++语言为开发语言,设计了一个星空背景下的太阳—地球—月球公转自转运动模型,模拟了太阳的光照效果,并实现了可以加速和减速地球和月球的自转、公转速度,而且还可以调整视图的远近和方位,方便各方面的观察。
1.2 OpenGL的基本特点
OpenGL即开放图形库(Open Graphics Library),是一个三维的计算机图形和模型库。
OpenGL作为一个性能优越的图形应用程序设计接口,适用于广泛的计算机环境。从个人计算机到工作站和超级计算机,OpenGL都能实现高性能的三维图形功能。
OpenGL是一个与硬件图形发生器的软件接口,它包括了100多个图形操作函数,开发者可以利用这些函数来构造景物模型、进行三维图形交互软件的开发。正如上一章所述,OpenGL是一个高性能的图形开发软件包。OpenGL支持网络,在网络系统中用户可以在不同的图形终端上运行程序显示图形。OpenGL作为一个与硬件独立的图形接口,它不提供与硬件密切相关的设备操作函数,同时,它也不提供描述类似于飞机、汽车、分子形状等复杂形体的图形操作函数。用户必须从点、线、面等最基本的图形单元开始构造自己的三维模型。当然,像OpenInventor那样更高一级的基于OpenGL的三维图形建模开发软件包将提供方便的工具。
因此OpenGL的图形操作函数十分基本、灵活。它具有如下特点。
图形质量好、性能高。
无论是三维动画、CAD,还是视觉模拟、可视化计算等,都利用了OpenGL高图形质量、高性能的特点。这个特点使得程序开发者在广播、CAD/CAM/CAE、娱乐、医学图像和虚拟现实等领域中创造和显示出难以想象的2D和3D图形。
行业标准。
OpenGL ARB作为独立的联合委员会,制定规范文档(Specification)。随着业内厂商的支持,OpenGL成为唯一真正开放的、独立于供应商的、跨平台的标准。
稳定性。
OpenGL能够在各种平台上执行,而且OpenGL高版本兼容低版本,保证了已经开发的应用程序不会失效。
可移植性和可靠性。
利用OpenGL技术开发的应用图形软件与硬件无关,只要硬件支持OpenGL API标准就行了,也就是说,OpenGL应用程序可以运行在支持OpenGL API标准的任何硬件上。但是,硬件是不断变化的,OpenGL如何保持可移植性呢?OpenGL扩展(OpenGL Extension)正是为这一目的而设计的。厂商只要提供OpenGL扩展,就可以轻松实现硬件特有的功能。利用OpenGL扩展,OpenGL实现者(OpenGL Implementer)也可以添加新的处理算法。
可扩展性。
OpenGL是低级的图形API,它具有充分的可扩展性。许多OpenGL开发商在OpenGL核心技术规范的基础上,增强了许多图形绘制功能,从而使OpenGL能紧跟必威体育精装版硬件发展和计算机图形绘制算法的发展。对于硬件特性的升级可以体现在OpenGL扩展机制以及OpenGL API中,一个成功的OpenGL扩展会被融入在未来的OpenGL版本之中。通过这种方法,程序开发者和硬件厂商能够在正常的产品周期中组合出新的产品。
可适应性。
基于OpenGL API的图形应用程序可以运行在许多系统上,包括各种用户电子设备、PC、工作站以及超级计算机。由此,OpenGL应用程序可以适应开发人员选择的各种目标平台。
易用性。
OpenGL具有良好的结构、直观的设计和逻辑命令。与其他图形程序包相比,OpenGL只有很少的代码,因此执行速度快。另外,OpenGL封装了有关基本硬件的信息,使得开发者无须针对具体的硬件特征进行设计。
二、概要设计
2.1 程序流程
图1 程序运行流程图
本节将对程序具体的实现进行说明。
开始之前要引用程序要求的头文件:
#include windows.h // Windows的头文件
#include gl\gl.h // OpenGL32库的头文件
#include gl\glu.h // Glu32库的头文件
#include gl\glaux.h // Glaux库的头文件#include stdio.h // 标准输入/输出库的头文件
#include math.h // math函数库#pragma comment (lib, opengl32.lib)
文档评论(0)