太阳系行星运行模拟C++程序语言

上传人:鲁** 文档编号:487397959 上传时间:2023-07-27 格式:DOCX 页数:20 大小:109.50KB
返回 下载 相关 举报
太阳系行星运行模拟C++程序语言_第1页
第1页 / 共20页
太阳系行星运行模拟C++程序语言_第2页
第2页 / 共20页
太阳系行星运行模拟C++程序语言_第3页
第3页 / 共20页
太阳系行星运行模拟C++程序语言_第4页
第4页 / 共20页
太阳系行星运行模拟C++程序语言_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《太阳系行星运行模拟C++程序语言》由会员分享,可在线阅读,更多相关《太阳系行星运行模拟C++程序语言(20页珍藏版)》请在金锄头文库上搜索。

1、太阳系行星运行模拟时间:2021.02.03创作:欧阳体组员:2011年9月2日概述太阳系(Solar System )就是我们现在所在的恒崖系统。它 是以太阳为中心,和所有受到太阳引力约束的天体的集合体:8 颗的崖冥王崖已被开除、至少165颗已知的卫崖,和数以亿计 的太阳系小天体。这些小天体包括小的崖、的伊伯带的天体、 彗崖和崖际尘埃。广义上,太阳系的领域包括太阳、4颗像地球 的内的崖、由许多小岩石组成的小的崖带、4颗充满气体的巨大 外的崖、充满冰冻小岩石、被称为的伊伯带的第二个小天体 区。在的伊伯带之外还有黄道离散盘面、太阳圈和依然属于假 设的奥尔特云。模拟太阳系彳仅仅是完成作业,也能让我

2、们更近一步的了解太 阳系,拓广知识而,对的崖的运行有基本的感性和理性感知。 增加我们对宇宙探索的渴望,可能培养出又一批天文学家。OpenGL (全写 Open Graphics Library )是个定义了一 个跨编 程语言、跨平台的编程接口的规格,它用于三维图象(二维的 亦可)。OpenGL是个专业的图形程序接口,是一个功能强大, 调用方便的底层图形库。欧阳体创编 2021.02.03欧阳美创编 2021.02.03OpenGL是一个开放的三维图形软件包,它独立于窗口系统 和操作系统,以它为基础开发的应用程序可以十分方便地在各 种平台向移植;OpenGL可以与Visual C+紧密接口,便于

3、实现 机械手的有关计算和图形算法,可保证算法的正确性和可靠 性;OpenGL使用简便,效率高。它具有七大功能: 1.建 模:OpenGL图形库除了提供基本的点、线、多边形的绘制函数 外,还提供了复杂的三维物体(球、锥、多面体、茶壶等)以 及复杂曲线和曲面绘制函数。 2.变换:OpenGL图形库的变 换包括基本变换和投影变换。基本变换有平移、旋转、变比镜 像四种变换,投影变换有平的投影(又称正射投影)和透视投 影两种变换O其变换方法有利于减少算法的运行时间,提高三 维图形的显示速度。3.颜色模式设置:OpenGL颜色模式有两种,即RGBA模式和颜色索引)(Color Index )。4.光照和材

4、质和镜面光(Specular Light )。材质是用光反射率来表 示。场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝 分量与材质红绿蓝分量的反射率相乘后形成的颜色。5:纹理映射(Texture Mapping )。利用OpenGL纹理映射功能可以 十分逼真地表达物体表面细节。6:位图显示和图象增强图象功能除了基本的拷贝和像素读多外,还提供融合 (Blending )、反走样(Antialiasing )和雾(fog )的特殊图象 效果处理。以上三条可使被仿真物更具真实感,增强图形显示 的效果。 7:双缓存动画(Double Buffering )双缓存即前 台缓存和后台缓存,简言之

5、,后台缓存计算场景、生成画面, 前台缓存显示后台缓存已画好的画面。 此外,利用OpenGL还能实现深度暗示(Depth Cue )、运动模糊(Motion Blur)等特殊效果。从而实现了消隐算法。具体卖现利用VC6.0和OpenGL绘制太阳系模拟,以最简单的方式,新建一个Win32 console application,加入以下代码:#include #include #include #include gl/glut.h的星GLfloat rot0 = 30.0;GLfloat rot1 = 0.0;GLfloat rot2 = 0.0;GLfloat rot3 = 0.0;GLfloa

6、t rot4 = 0.0;GLfloat rot5 = 0.0;GLfloat rot6 = 0.0;GLfloat rot7 = 0.0;GLfloat rot8 = 0.0;卫星GLfloat rot9 = 0.0;GLfloat rot10 = 0.0;GLfloat rotll = 0.0;void init()glClearColor(0.0,0.0,0.0,0.0);glClearDepth(1.0);glShadeModel(GL_FLAT);void display()glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glCo

7、lor3f(1.0,1.0,1.0);glLoadIdentity();/gluLookAt(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);glu

8、tSolidTorus(0.02, 5.0, 10, 64);glRotatef(-90,1.0,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.

9、0);glRotatef(-90,1.0,0,0.0);/设置月亮公转速度glRotatef(rot9,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(rot

10、1,0.0,1.0,0.0);/设置水星公转半径glTranslatef(2.5,0.0,0.0);/设置水星自传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);/

11、设置金星公转半径glTranslatef(3.4,0.0,0.0);/设置金星自传glRotatef(rot0,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);/设置火星公转半径glTransl

12、atef(6.6,0.0,0.0);/设置火星自传glRotatef(rot7,0.0,2.0,0.0);/绘制火星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

13、);20210203 罔H座勤 20210203 x)&网丽 6X glRomfff(rocsp00. 3O.O); 丽glmS OHdspherA1P3 卜 3 2); =丽 2 丽2 一 glcoor3fo.4o.3o.5) xMa-舁6舞穗弥 xglRowefAopoploo.o); 二佥昧 glR0mfff(9plooo.o); glR0mfff(9plooo.o);一KM 2 1 R舞同裕 glRomfff(ro 二 ooploo.o); )&网2 舞* gHranslafff(l .3OOO.O); hi- glutsolidspherepL 1000); =丽 2 丽2 2 gl

14、coor3f(0.5fo.5fo.5fx xMa-舁6舞穗弥 xglRowefAopoploo.o); 二佥昧20210203 罔H座勤 20210203glRotatef(90,1.0,0,0.0);glRotatef(-90,1.0,0,0.0);/设置木卫2公转速度 glRotatef(rot11,0.0,1.0,0.0);/设置木卫2公转半径 glTranslatef(1.2,0.0,0.0);/绘制木卫2glutSolidSphere(0.08,10,8);glPopMatrix();绘制土星glPushMatrix();glColor3f(1.0f, 1.0f, 0.0f);绘制辅助轨道glRotatef(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(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号