Turinys:

Saulės sistemos modeliavimas: 4 žingsniai
Saulės sistemos modeliavimas: 4 žingsniai

Video: Saulės sistemos modeliavimas: 4 žingsniai

Video: Saulės sistemos modeliavimas: 4 žingsniai
Video: Saulės sistemos Planetos vaikams - Mokykla HEROJUS 2024, Liepa
Anonim

Šiam projektui aš nusprendžiau sukurti simuliaciją, kaip gravitacija veikia Saulės sistemos planetų kūnų judėjimą. Vaizdo įraše aukščiau / Saulės kūnas pavaizduotas vielos tinklo sfera, o planetos yra sugeneruotos atsitiktinai.

Planetų judėjimas pagrįstas tikra fizika, visuotinės gravitacijos įstatymu. Šis dėsnis apibrėžia gravitacinę jėgą, kurią masę veikia kita masė; šiuo atveju Saulė visose planetose, o planetos viena ant kitos.

Šiam projektui naudojau „Processing“, „Java“pagrįstą programavimo aplinką. Aš taip pat naudojau apdorojimo pavyzdžio failą, kuris imituoja planetų gravitaciją. Tam jums reikės tik apdorojimo programinės įrangos ir kompiuterio.

1 žingsnis: 2 matmenų modeliavimas

Pradėjau žiūrėdamas keletą vaizdo įrašų apie tai, kaip koduoti tai, ką Danas Shiffmanas sukūrė savo „YouTube“kanale „Kodavimo traukinys“(1/3 dalis). Šiuo metu aš maniau, kad naudosiu rekursiją saulės sistemai generuoti, panašiai kaip Shiffmanas daro tik naudodamas fizikos įstatymus.

Aš sukūriau planetos objektą, kuriame buvo „vaikų planetos“, kurios savo ruožtu taip pat turėjo „vaikų“planetas. 2D modeliavimo kodas nebuvo baigtas, nes neturėjau puikaus būdo imituoti kiekvienos planetos gravitacines jėgas. Aš pasukau nuo šio mąstymo būdo kryptimi, pagrįsta integruotu gravitacinės traukos apdorojimo pavyzdžiu. Problema buvo ta, kad man reikėjo apskaičiuoti gravitacinę jėgą iš visų kitų planetų kiekvienoje planetoje, bet negalvojau, kaip lengvai surinkti atskiros planetos informaciją. Pamatęs, kaip tai daro „Apdorojimo pamoka“, tiksliai supratau, kaip tai padaryti naudojant kilpas ir masyvus

2 žingsnis: perkelkite jį į 3 matmenis

Naudodamas pavyzdinį „Planetary Attraction“kodą, kuris pateikiamas apdorojant, aš pradėjau naują 3D modeliavimo programą. Pagrindinis skirtumas yra planetos klasėje, kur aš pridėjau traukos funkciją, kuri apskaičiuoja gravitacinę jėgą tarp dviejų planetų. Tai leido man imituoti, kaip veikia mūsų Saulės sistemos, kuriose planetas traukia ne tik saulė, bet ir visos kitos planetos.

Kiekviena planeta turi atsitiktinai sukurtas charakteristikas, tokias kaip masė, spindulys, pradinis orbitos greitis ir kt. Planetos yra kietos sferos, o Saulė yra vielos tinklelio sfera. Be to, fotoaparato vieta sukasi aplink lango centrą.

3 žingsnis: „Real Planets“naudojimas

Image
Image

Išsiaiškinęs 3D modeliavimo sistemą, naudodamasis „Wikipedia“radau faktinius mūsų Saulės sistemos planetinius duomenis. Aš sukūriau daugybę planetų objektų ir įvedžiau tikrus duomenis. Kai tai padariau, turėjau sumažinti visas charakteristikas. Kai tai padariau, turėčiau paimti faktines vertes ir padauginti iš koeficiento, kad sumažintume vertes, o tai padariau Žemės vienetais. Tai yra, aš paėmiau Žemės vertės santykį su kitų objektų verte, pavyzdžiui, Saulė turi 109 kartus didesnę masę nei Žemė. Tačiau dėl to planetos atrodė per didelės arba per mažos.

4 žingsnis: paskutinės mintys ir komentarai

Jei tęstų darbą prie šio modeliavimo, patikslinčiau/patobulinčiau keletą dalykų:

1. Pirmiausia viską tolygiai išmatuočiau, naudodamas tą patį mastelio koeficientą. Tada, norėdamas pagerinti orbitų matomumą, norėčiau pridėti takelį už kiekvienos planetos, kad pamatytumėte, kaip kiekviena revoliucija lyginama su ankstesne

2. Fotoaparatas nėra interaktyvus, o tai reiškia, kad dalis orbitų yra už ekrano, „už žmogaus“žiūrinčios. Yra 3D kamerų biblioteka „Peazy Cam“, kuri naudojama „Coding Train“vaizdo įrašų serijos šia tema 2 dalyje. Ši biblioteka leidžia žiūrovui pasukti, pasukti ir priartinti fotoaparatą taip, kad jis galėtų sekti visą planetos orbitą.

3. Galiausiai, planetos šiuo metu nesiskiria viena nuo kitos. Prie kiekvienos planetos ir Saulės norėčiau pridėti „odos“, kad žiūrovai galėtų atpažinti Žemę ir pan.

Rekomenduojamas: