【L34】计算机图形学:带有传统OpenGL的太阳系模型 炫酷

2022-01-12 11:14:05      索炜达电子      370     

文件编号:L34

文件大小:76M

代码行数:374行(主程序)

开发环境:VS2019、OpenGL

猿创承诺:该源码均通过亲自测试可正常运行

简要概述:带有传统OpenGL的太阳系模型

距离和大小:

轨道距离是真人大小的 AU(天文单位)。行星大小也成正比。

但是太阳的大小有点棘手。我做不到生活中那么大的太阳。

因为当我尝试放大太阳时,其他行星被太阳吸收了。

然后我尝试用太阳扩大轨道,但这一次行星变得很小,无法看到。所以,我缩放了与其他距离不同的太阳大小。

轨道和球体:

天体具有像现实生活一样的椭圆轨道,而太阳位于两个焦点之一。我更喜欢 Icospheres 来渲染行星。

交互功能:

键盘

l -> 启用/禁用照明

t -> 启用/禁用纹理

o -> 启用/禁用 drawOrbit

- -> 降低时间速度

+ -> 增加时间速度

0 -> 重置相机旋转/位置

w, s -> 改变相机绕太阳的 X 轴旋转

a, d -> 改变相机绕太阳的 Z 轴旋转

鼠标

左键单击和鼠标移动-> 更改视角

右键单击 -> glut 菜单,更改灯光颜色、速度或纹理

向上/向下滚动 -> 放大/缩小到太阳(沿 z 轴移动)

运行效果:

【L34】计算机图形学:带有传统OpenGL的太阳系模型 炫酷

目录│文件列表:

 ├ 演示视频

 │  └ 演示视频.mp4

 └ 项目源码

    └ SolarSystem-OpenGl-main

       │ SolarSystem.sln

       ├ Debug

       │  │ SolarSystem.exe

       │  └ SolarSystem.pdb

       ├ SolarSystem

       │  │ CelestialBody.cpp

       │  │ CelestialBody.h

       │  │ freeglut.dll

       │  │ glew32.dll

       │  │ Icosphere.cpp

       │  │ Icosphere.h

       │  │ SolarSystem.cpp

       │  │ SolarSystem.vcxproj

       │  │ SolarSystem.vcxproj.filters

       │  │ SolarSystem.vcxproj.user

       │  ├ Debug

       │  │  │ CelestialBody.obj

       │  │  │ Icosphere.obj

       │  │  │ SolarSystem.exe.recipe

       │  │  │ SolarSystem.ilk

       │  │  │ SolarSystem.log

       │  │  │ SolarSystem.obj

       │  │  │ vc142.idb

       │  │  │ vc142.pdb

       │  │  └ SolarSystem.tlog

       │  │     │ CL.command.1.tlog

       │  │     │ CL.read.1.tlog

       │  │     │ CL.write.1.tlog

       │  │     │ link.command.1.tlog

       │  │     │ link.read.1.tlog

       │  │     │ link.write.1.tlog

       │  │     └ SolarSystem.lastbuildstate

       │  ├ Texture

       │  │  │ earth.bmp

       │  │  │ jupiter.bmp

       │  │  │ mars.bmp

       │  │  │ mercury.bmp

       │  │  │ moon.bmp

       │  │  │ neptune.bmp

       │  │  │ saturn.bmp

       │  │  │ stars.bmp

       │  │  │ sun.bmp

       │  │  │ uranus.bmp

       │  │  └ venus_atmosphere.bmp

       │  └ x64

       │     └ Debug

       │        │ CelestialBody.obj

       │        │ Icosphere.obj

       │        │ SolarSystem.log

       │        │ SolarSystem.obj

       │        │ vc142.idb

       │        │ vc142.pdb

       │        └ SolarSystem.tlog

       │           │ CL.command.1.tlog

       │           │ CL.read.1.tlog

       │           │ CL.write.1.tlog

       │           │ link.command.1.tlog

       │           │ link.read.1.tlog

       │           │ link.write.1.tlog

       │           │ SolarSystem.lastbuildstate

       │           └ unsuccessfulbuild

TAG太阳系模型
  • 1 次
  • 500 分