2022-01-12 11:14:05 索煒達(dá)電子 642
文件編號(hào):L34
文件大?。?/strong>76M
代碼行數(shù):374行(主程序)
開發(fā)環(huán)境:VS2019、OpenGL
猿創(chuàng)承諾:該源碼均通過親自測(cè)試可正常運(yùn)行
簡(jiǎn)要概述:帶有傳統(tǒng)OpenGL的太陽系模型。
距離和大?。?/p>
軌道距離是真人大小的 AU(天文單位)。行星大小也成正比。
但是太陽的大小有點(diǎn)棘手。我做不到生活中那么大的太陽。
因?yàn)楫?dāng)我嘗試放大太陽時(shí),其他行星被太陽吸收了。
然后我嘗試用太陽擴(kuò)大軌道,但這一次行星變得很小,無法看到。所以,我縮放了與其他距離不同的太陽大小。
軌道和球體:
天體具有像現(xiàn)實(shí)生活一樣的橢圓軌道,而太陽位于兩個(gè)焦點(diǎn)之一。我更喜歡 Icospheres 來渲染行星。
交互功能:
鍵盤
l -> 啟用/禁用照明
t -> 啟用/禁用紋理
o -> 啟用/禁用 drawOrbit
- -> 降低時(shí)間速度
+ -> 增加時(shí)間速度
0 -> 重置相機(jī)旋轉(zhuǎn)/位置
w, s -> 改變相機(jī)繞太陽的 X 軸旋轉(zhuǎn)
a, d -> 改變相機(jī)繞太陽的 Z 軸旋轉(zhuǎn)
鼠標(biāo)
左鍵單擊和鼠標(biāo)移動(dòng)-> 更改視角
右鍵單擊 -> glut 菜單,更改燈光顏色、速度或紋理
向上/向下滾動(dòng) -> 放大/縮小到太陽(沿 z 軸移動(dòng))
運(yùn)行效果:
目錄│文件列表:
├ 演示視頻
│ └ 演示視頻.mp4
└ 項(xiàng)目源碼
└ 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