Kazalo:

Simulacija sončnega sistema: 4 koraki
Simulacija sončnega sistema: 4 koraki

Video: Simulacija sončnega sistema: 4 koraki

Video: Simulacija sončnega sistema: 4 koraki
Video: Кампи Флегрей: супервулкан Италии Pt4: моделирование извержения в настоящее время 2024, Julij
Anonim

Za ta projekt sem se odločil ustvariti simulacijo vpliva gravitacije na gibanje planetarnih teles v sončnem sistemu. V zgornjem videu / je Sončevo telo predstavljeno z žično mrežo, planeti pa so naključno ustvarjeni.

Gibanje planetov temelji na resnični fiziki, zakonu univerzalne gravitacije. Ta zakon opredeljuje gravitacijsko silo, ki jo na maso izvaja druga masa; v tem primeru sonce na vseh planetih in planeti drug na drugem.

Za ta projekt sem uporabil Processing, programsko okolje, ki temelji na javi. Uporabil sem tudi primer datoteke Processing, ki simulira gravitacijo planetov. Za to potrebujete le programsko opremo za obdelavo in računalnik.

1. korak: 2 -dimenzionalna simulacija

Začel sem z ogledom nekaj videoposnetkov o tem, kako kodirati to, kar je Dan Shiffman ustvaril na svojem kanalu YouTube, Coding Train (del 1/3). Na tej točki sem mislil, da bom za ustvarjanje sončnega sistema uporabil rekurzijo, podobno kot Shiffman uporablja le zakone fizike.

Ustvaril sem planetni objekt, ki je imel "otroke planete", ki pa so imeli tudi "otroke" planete. Koda za 2D simulacijo ni bila dokončana, ker nisem imel odličnega načina za simulacijo gravitacijskih sil za vsak planet. Od tega načina razmišljanja sem se usmeril v smer, ki temelji na vgrajenem procesu obdelave gravitacijske privlačnosti. Vprašanje je bilo, da sem moral izračunati gravitacijsko silo z vseh drugih planetov na vsakem planetu, vendar se nisem mogel zamisliti, kako bi zlahka potegnil informacije o posameznem planetu. Ko sem videl, kako to počne vadnica Processing, sem natančno spoznal, kako to storiti z uporabo zank in nizov

Korak: Povlecite ga v 3 dimenzije

Z uporabo vzorčne kode za planetarno privlačnost, ki je priložena obdelavi, sem začel nov program za 3D simulacijo. Največja razlika je v razredu Planet, kjer sem dodal privlačno funkcijo, ki izračuna gravitacijsko silo med dvema planetoma. To mi je omogočilo, da simuliram delovanje naših sončnih sistemov, kjer planete ne privlači samo sonce, ampak tudi vsak drugi planet.

Vsak planet ima naključno ustvarjene značilnosti, kot so masa, polmer, začetna orbitalna hitrost itd. Planeti so trdne krogle in Sonce je krogla iz žične mreže. Poleg tega se lokacija kamere vrti okoli središča okna.

3. korak: Uporaba pravih planetov

Image
Image

Ko sem dobil okvir za 3D simulacijo, sem z Wikipedijo poiskal dejanske planetarne podatke za naš sončni sistem. Ustvaril sem niz planetov in vnesel resnične podatke. Ko sem to storil, sem moral zmanjšati vse lastnosti. Ko sem to storil, bi moral vzeti dejanske vrednosti in pomnožiti s faktorjem za zmanjšanje vrednosti, namesto tega sem to storil v enotah Zemlje. To pomeni, da sem vzel razmerje med vrednostjo Zemlje in vrednostjo drugih predmetov, na primer ima Sonce 109 -krat večjo maso kot Zemlja. Vendar je to povzročilo, da so bile velikosti planetov prevelike ali premajhne.

4. korak: Končne misli in komentarji

Če bi še naprej delal na tej simulaciji, bi izboljšal/izboljšal nekaj stvari:

1. Najprej bi vse enotno prilagodil z istim faktorjem povečanja. Potem bi za izboljšanje vidnosti orbit dodal sled za vsakim planetom, da bi videl, kako se vsaka revolucija primerja s prejšnjo

2. Kamera ni interaktivna, kar pomeni, da je del orbit zunaj zaslona, "za osebo", ki gleda. Obstaja knjižnica 3D -kamere z imenom Peazy Cam, ki se uporablja v drugem delu video serije o kodiranju vlaka na to temo. Ta knjižnica omogoča gledalcu vrtenje, premikanje in povečevanje kamere, tako da lahko sledi celotni orbiti planeta.

3. Končno se planeti trenutno ne razlikujejo drug od drugega. Vsakemu planetu in Soncu bi rad dodal 'kože', da bi gledalci prepoznali Zemljo in podobno.

Priporočena: