Sadržaj:

Simulacija solarnog sistema: 4 koraka
Simulacija solarnog sistema: 4 koraka

Video: Simulacija solarnog sistema: 4 koraka

Video: Simulacija solarnog sistema: 4 koraka
Video: Как Солнечная система движется по галактике? 2024, Juli
Anonim

Za ovaj projekt namjeravao sam stvoriti simulaciju kako gravitacija utječe na kretanje planetarnih tijela u Sunčevom sistemu. U gornjem videu \, tijelo Sunca predstavljeno je sferom od žičane mreže, a planete su nasumično generirane.

Kretanje planeta temelji se na stvarnoj fizici, Zakonu univerzalne gravitacije. Ovaj zakon definira gravitacijsku silu koju na masu vrši druga masa; u ovom slučaju Sunce na svim planetama, a planete jedna na drugoj.

Za ovaj projekat koristio sam Processing, programsko okruženje zasnovano na javi. Koristio sam i datoteku primjera Processing koja simulira gravitaciju planeta. Sve što vam je potrebno za ovo je softver za obradu i računar.

Korak 1: 2 Dimenzionalna simulacija

Počeo sam gledajući neke video zapise o tome kako kodirati ovo što je Dan Shiffman stvorio na svom YouTube kanalu, Coding Train (dio 1/3). U ovom trenutku sam pomislio da ću koristiti rekurziju za generiranje Sunčevog sistema, slično onome što Shiffman radi samo koristeći zakone fizike.

Napravio sam planetarni objekat koji je imao 'dječije planete', a koji su zauzvrat imali i 'dječije' planete. Kod za 2D simulaciju nije dovršen jer nisam imao sjajan način za simulaciju gravitacijskih sila za svaku planetu. Okrenuo sam se od ovog načina razmišljanja, u smjeru koji se temelji na ugrađenom primjeru obrade gravitacijske privlačnosti. Problem je bio u tome što sam trebao izračunati gravitacijsku silu sa svih drugih planeta na svakoj planeti, ali nisam mogao smisliti kako lako izvući informacije o pojedinačnoj planeti. Nakon što sam vidio kako to radi vodič za obradu, shvatio sam kako to točno učiniti pomoću petlji i niza

Korak 2: Uzimanje u 3 dimenzije

Koristeći primjer koda za planetarnu privlačnost koji dolazi s obradom, pokrenuo sam novi program za 3D simulaciju. Glavna razlika je u klasi Planet, gdje sam dodao funkciju privlačenja, koja izračunava gravitacijsku silu između dvije planete. To mi je omogućilo da simuliram kako funkcionišu naši solarni sistemi, gdje planete ne privlači samo Sunce, već i svaka druga planeta.

Svaka planeta ima nasumično generirane karakteristike kao što su masa, polumjer, početna orbitalna brzina itd. Planete su čvrste sfere, a Sunce je sfera od žičane mreže. Osim toga, lokacija kamere se rotira oko središta prozora.

Korak 3: Upotreba pravih planeta

Image
Image

Nakon što sam spustio okvir za 3D simulaciju, koristio sam Wikipedia kako bih pronašao stvarne planetarne podatke za naš Sunčev sistem. Napravio sam niz planetarnih objekata i unosio stvarne podatke. Kad sam to učinio, morao sam smanjiti sve karakteristike. Kad sam to učinio, trebao sam uzeti stvarne vrijednosti i pomnožiti ih s faktorom za smanjenje vrijednosti, umjesto toga, učinio sam to u jedinicama Zemlje. To jest uzeo sam odnos vrijednosti Zemlje prema vrijednosti drugih objekata, na primjer Sunce ima 109 puta veću masu od Zemlje. Međutim, to je dovelo do toga da su veličine planeta izgledale prevelike ili premale.

Korak 4: Završne misli i komentari

Ako bih nastavio raditi na ovoj simulaciji, poboljšao bih/poboljšao nekoliko stvari:

1. Prvo bih sve jednolično skalirao koristeći isti faktor skaliranja. Zatim, da bih poboljšao vidljivost orbita, dodao bih trag iza svake planete da vidim kako se svaka revolucija uspoređuje s prethodnom

2. Kamera nije interaktivna, što znači da je dio orbita izvan ekrana, "iza osobe" koja gleda. Postoji biblioteka 3D kamera pod nazivom Peazy Cam, koja se koristi u drugom dijelu video serije Coding Train o ovoj temi. Ova biblioteka omogućava gledatelju da rotira, pomiče i zumira kameru tako da može pratiti cijelu orbitu planete.

3. Konačno, planete se trenutno ne razlikuju jedna od druge. Želeo bih da dodam „kože“svakoj planeti i Suncu, tako da gledaoci mogu da prepoznaju Zemlju i slično.

Preporučuje se: