Sisukord:

Päikesesüsteemi simulatsioon: 4 sammu
Päikesesüsteemi simulatsioon: 4 sammu

Video: Päikesesüsteemi simulatsioon: 4 sammu

Video: Päikesesüsteemi simulatsioon: 4 sammu
Video: Teema 4, loeng 4-2 / Jüri Soolepi loengusari: Imagosfääri kehtestumine 2024, Juuli
Anonim

Selle projekti jaoks otsustasin luua simulatsiooni selle kohta, kuidas gravitatsioon mõjutab Päikesesüsteemi planeetkehade liikumist. Ülaltoodud videos / kujutab Päikese keha traatvõrgu kera ja planeedid genereeritakse juhuslikult.

Planeetide liikumine põhineb tõelisel füüsikal, universaalse gravitatsiooni seadusel. See seadus määratleb gravitatsioonijõu, mida mass avaldab teise massi poolt; sel juhul Päike kõikidel planeetidel, ja planeedid üksteisel.

Selle projekti jaoks kasutasin java -põhist programmeerimiskeskkonda Processing. Kasutasin ka töötlemise näidisfaili, mis simuleerib planeetide raskusjõudu. Selleks vajate ainult töötlemistarkvara ja arvutit.

Samm 1: 2 Mõõtmete simulatsioon

Alustuseks vaatasin mõnda videot selle kohta, kuidas Dan Shiffman oma YouTube'i kanalil Coding Train (osa 1/3) lõi. Siinkohal mõtlesin, et kasutan päikesesüsteemi genereerimiseks rekursiooni, sarnaselt sellele, kuidas Shiffman teeb ainult füüsikaseadusi kasutades.

Ma lõin planeediobjekti, millel olid "lapsplaneetid", kellel omakorda olid ka "lapsplaneetid". 2D simulatsiooni kood ei olnud valmis, sest mul polnud suurepärast võimalust iga planeedi gravitatsioonijõude simuleerimiseks. Pöördusin sellest mõtteviisist suunas, mis põhineb gravitatsioonilise atraktsiooni sisseehitatud töötlemise näitel. Küsimus oli selles, et mul oli vaja arvutada kõigi planeetide kõigi teiste planeetide gravitatsioonijõud, kuid ei suutnud välja mõelda, kuidas üksiku planeedi teavet hõlpsalt hankida. Pärast töötlemise õpetuse nägemist mõistsin täpselt, kuidas seda teha, kasutades silmuseid ja massiive

2. samm: viige see 3 mõõtmesse

Kasutades töötlemisega kaasnevat Planetary Attractioni näidiskoodi, käivitasin uue 3D -simulatsiooni programmi. Peamine erinevus on planeedi klassis, kuhu lisasin atraktsioonifunktsiooni, mis arvutab kahe planeedi vahelise gravitatsioonijõu. See võimaldas mul simuleerida meie päikesesüsteemide toimimist, kus planeete ei köida mitte ainult päike, vaid ka kõik teised planeedid.

Igal planeedil on juhuslikult loodud omadused, nagu mass, raadius, orbiidi algkiirus jne. Planeedid on tahked kerad ja Päike on traatvõrk. Lisaks pöörleb kaamera asukoht ümber akna keskosa.

3. samm: päris planeetide kasutamine

Image
Image

Pärast 3D -simulatsiooni raamistiku hankimist kasutasin Wikipediat, et leida meie päikesesüsteemi tegelikud planeediandmed. Lõin planeedi objektide massiivi ja sisestasin tegelikud andmed. Kui ma seda tegin, pidin kõik omadused vähendama. Seda tehes oleksin pidanud võtma tegelikud väärtused ja korrutama väärtuste vähendamiseks teguriga, selle asemel tegin seda Maa ühikutes. See tähendab, et võtsin suhte Maa väärtus teiste objektide väärtusega, näiteks Päikesel on Maaga võrreldes 109 korda suurem mass. Selle tulemusel tundusid planeedid aga liiga suured või väikesed.

4. samm: viimased mõtted ja kommentaarid

Kui ma jätkaksin selle simulatsiooni kallal töötamist, täiustaksin/täiustaksin paari asja:

1. Esiteks skaleeriksin kõik ühtlaselt, kasutades sama skaleerimistegurit. Siis, et parandada orbiitide nähtavust, lisan iga planeedi taha jälje, et näha, kuidas iga revolutsioon võrreldes eelmisega on

2. Kaamera ei ole interaktiivne, mis tähendab, et osa orbiitidest on ekraanilt väljas, vaadates "inimese taga". Seal on 3D -kaamerate kogu nimega Peazy Cam, mida kasutatakse Coding Train'i selleteemalise videosarja 2. osas. See raamatukogu võimaldab vaatajal kaamerat pöörata, panoraamida ja suumida, nii et ta saaks jälgida kogu planeedi orbiiti.

3. Lõpuks on planeedid praegu üksteisest eristamatud. Tahaksin igale planeedile ja Päikesele lisada nahad, et vaatajad saaksid ära tunda Maa ja muu.

Soovitan: