太阳系行星运行模拟C++程序语言_第1页
太阳系行星运行模拟C++程序语言_第2页
太阳系行星运行模拟C++程序语言_第3页
太阳系行星运行模拟C++程序语言_第4页
太阳系行星运行模拟C++程序语言_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、太阳系行星运行模拟团队成员:2011年9月2日总结太阳系是我们现在所在的恒星系统。它以太阳为中心,汇集了所有受太阳引力约束的天体:八颗行星冥王星被驱逐,至少165颗已知卫星,以及太阳系中数亿个小天体。这些小天体包括小行星、柯伊伯带天体、彗星和星际尘埃。广义地说,太阳系包括太阳、像地球一样的四个内行星、由许多小岩石组成的小行星带、四个充满气体的巨大外行星,以及第二个充满冻结小岩石的小天体区域,称为柯伊伯带。在柯伊伯带之外,还有黄道离散盘、太阳圈和奥尔特云,它们仍然属于这个假说。模拟太阳系不仅能完成作业,还能让我们进一步了解太阳系,拓宽我们的知识面,对行星的运行有一个基本的感性和理性的认识。增加我

2、们探索宇宙的欲望可能会产生另一群天文学家。opengl(全编写的开放图形库)是一个定义跨编程语言和跨平台编程接口的规范,它用于三维图像(二维图像也可用)。opengl是一个专业的图形程序接口,是一个功能强大、方便的底层图形库。opengl是一个开放的三维图形软件包,独立于窗口系统和操作系统,基于opengl开发的应用程序可以很容易地移植到各种平台上;opengl与visual c语言接口紧密,便于实现机械手的计算和图形算法,保证算法的正确性和可靠性;opengl易于使用,效率高。它有七个功能:1 .建模:opengl图形库不仅提供点、线、多边形的基本绘图功能,还提供复杂三维物体(球、锥、多面体

3、、茶壶等)的绘图功能。)和复杂的曲线和曲面。2.转换:opengl图形库的转换包括基本转换和投影转换。有四种基本变换:平移、旋转和缩放镜像,而投影变换包括两种变换:平行投影(也称为正投影)和透视投影。该变换方法可以减少算法的运行时间,提高三维图形的显示速度。3.颜色模式设置:有两种opengl颜色模式,即rgba模式和颜色索引。4.照明、材质和高光。材料用光的反射率来表示。场景中的物体最终反射到人眼的颜色是光的红、绿、蓝分量与材料的红、绿、蓝分量的反射率相乘形成的颜色。5:纹理映射。使用opengl纹理映射功能,可以非常逼真地表达物体的表面细节。除了基本的复印和像素读写,6:位图显示和图像增强

4、功能还提供特殊的图像效果处理,如混合、抗锯齿和雾化。以上三项可以使模拟对象更加逼真,增强图形显示效果。7:双缓冲双缓冲是指前台缓冲和后台缓冲。简而言之,背景缓冲区计算场景并生成图片,而前景缓冲区显示由背景缓冲区绘制的图片。此外,opengl还可以实现特殊效果,如深度提示和运动模糊。从而实现消隐算法。具体实现使用vc6.0和opengl绘制太阳系模拟图,并以最简单的方式创建一个新的win32控制台应用程序,并添加以下代码:#包括#包括#包括#包括 gl/glut.h /行星glfloat rot0=30.0glfloat rot1=0.0glfloat rot2=0.0glfloat rot3=

5、0.0glfloat rot4=0.0glfloat rot5=0.0glfloat rot6=0.0glfloat rot7=0.0glfloat rot8=0.0/卫星glfloat rot9=0.0glfloat rot10=0.0glfloat rot11=0.0void init()glclearcolor(0.0,0.0,0.0,0.0);glcleardepth(1.0);glshademodel(gl _ flat);无效显示()清除(总帐_颜色_缓冲区_位|总帐_深度_缓冲区_位);glcolor3f(1.0,1.0,1.0);glloadidentity();/gloulo

6、okat(0,10,10,0,0,0,0,1,0);/glrotatef(45.0,0.0,0.0,1.0);gltranslatef(0.0,0.0,-20.0);glrotatef(90.0,1.0,0.0,0);glpushmatrix();/画太阳glcolor3f(1.0,0.0,0.0);glutsolidsphere(2.0,32,32);/画地球glpushmatrix();glcolor3f(0.0,0.0,1.0);/绘制辅助轨迹glrotatef(90,1.0,0,0.0);glutsolidtorus(0.02,5.0,10,64);glrotatef(-90,1.0,

7、0,0.0);/设定地球的旋转速度glrotatef(rot0,0.0,1.0,0.0);/设置地球的半径gltranslatef(5.0,0.0,0.0);/设定地球的旋转速度/glrotatef(rot1,0.0,1.0,0.0);/画地球glutsolidsphere(0.4,32,32);/画地球的卫星月亮glcolor3f(0.5,0.6,0.5);/抵消地球自转的影响/glrotatef(-rot1,0.0,1.0,0.0);/绘制辅助轨迹glrotatef(90,1.0,0,0.0);glrotatef(-90,1.0,0,0.0);/设定月球的旋转速度glrotatef(rot

8、9,0.0,1.0,0.0);/设定月球的旋转半径gltranslatef(0.6,0.0,0.0);/画月亮glutsolidsphere(0.1,10,8);glpopmatrix();/绘制水星glpushmatrix();glcolor3f(0.0,1.0,1.0);/绘制辅助轨迹glrotatef(90,1.0,0,0.0);glutsolidtorus(0.02,2.5,10,64);glrotatef(-90,1.0,0,0.0);/设定水银的转速glrotatef(rot1,0.0,1.0,0.0);/设置水银的旋转半径gltranslatef(2.5,0.0,0.0);/设定

9、水星自传glrotatef(rot3,0.0,1.0,0.0);/绘制水星glutsolidsphere(0.2,32,32);glpopmatrix();/画维纳斯glpushmatrix();glcolor3f(0.0,1.0,0.0);/绘制辅助轨迹glrotatef(90,1.0,0,0.0);glutsolidtorus(0.02,3.4,10,64);glrotatef(-90,1.0,0,0.0);/设定金星的旋转速度glrotatef(rot2,0.0,3.0,0.0);/设置金星的公转半径gltranslatef(3.4,0.0,0.0);/设定金星自传glrotatef(r

10、ot0,0.0,1.0,0.0);/画维纳斯glutsolidsphere(0.3,32,32);glpopmatrix();/画火星glpushmatrix();glcolor3f(1.0,0.0,0.0);/绘制辅助轨迹glrotatef(90,1.0,0,0.0);glutsolidtorus(0.02,6.6,10,64);glrotatef(-90,1.0,0,0.0);/设定火星的旋转速度glrotatef(rot3,0.0,4.0,0.0);/设置火星的旋转半径gltranslatef(6.6,0.0,0.0);/设定火星自传glrotatef(rot7,0.0,2.0,0.0)

11、;/画火星glutsolidsphere(0.5,32,32);glpopmatrix();/绘制木星glpushmatrix();glcolor3f(2.0,0.1,1.0);/绘制辅助轨迹glrotatef(90,1.0,0,0.0);glutsolidtorus(0.02,8.5,10,64);glrotatef(-90,1.0,0,0.0);/设定木星的旋转速度glrotatef(rot4,0.0,0.4,0.0);/设置木星的公转半径gltranslatef(8.5,0.0,0.0);/设定木星自传glrotatef(rot3,0.0,0.3,0.0);/绘制木星glutsolids

12、phere(1.0,32,32);/绘制木星的卫星-木卫三1glcolor3f(0.4,0.3,0.5);/抵消地球自转的影响/glrotatef(-rot1,0.0,1.0,0.0);/绘制辅助轨迹glrotatef(90,1.0,0,0.0);glrotatef(-90,1.0,0,0.0);/设置ganymede 1的转速glrotatef(rot10,0.0,1.0,0.0);/设置ganymede 1的旋转半径gltranslatef(1.3,0.0,0.0);/绘制io 1glutsolidsphere(0.1,10,8);/绘制木星的卫星-木卫三2glcolor3f(0.5f,0

13、.5f,0.5 f);/抵消地球自转的影响/glrotatef(-rot1,0.0,1.0,0.0);/绘制辅助轨迹glrotatef(90,1.0,0,0.0);glrotatef(-90,1.0,0,0.0);/设置ganymede 2的转速glrotatef(rot11,0.0,1.0,0.0);/设置ganymede 2的旋转半径gltranslatef(1.2,0.0,0.0);/画木卫2glutsolidsphere(0.08,10,8);glpopmatrix();/绘制土星glpushmatrix();glcolor3f(1.0f,1.0f,0.0f);/绘制辅助轨迹glrot

14、atef(90,1.0,0,0.0);glutsolidtorus(0.02,12.5,10,64);glrotatef(-90,1.0,0,0.0);/设定土星的旋转速度glrotatef(rot5,0.0,0.4,0.0);/设定土星的旋转半径gltranslatef(12.5,0.0,0.0);/设定土星自传glrotatef(rot3,0.0,0.3,0.0);/绘制土星glutsolidsphere(0.85,32,32);/画土星环glrotatef(90,1.0,0,0.0);glutsolidtorus(0.1,1.25,10,64);glrotatef(-90,1.0,0,0

15、.0);glrotatef(90,1.0,0,0.0);glutsolidtorus(0.07,1.65,10,64);glrotatef(-90,1.0,0,0.0);glpopmatrix();glpopmatrix();/画天王星glpushmatrix();glcolor3f(0.0f,1.0f,1.0f);/绘制辅助轨迹glrotatef(90,1.0,0,0.0);glutsolidtorus(0.02,15.5,10,64);glrotatef(-90,1.0,0,0.0);/设定天王星的旋转速度glrotatef(rot6,0.0,0.4,0.0);/设置天王星的旋转半径gltranslatef(15.5,0.0,0.0);/设定天王星自传glrotatef(rot1,0.0,0.3,0.0);/画天王星谷氨酸球体(0.15、32、32);glpop矩阵();/陈力宏glpushmatrix();glcolor3f(0.0f,0.0,8.0f);/陈列夫阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉阿吉glr ate ef(90,1.0,0,0.0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论