Sadržaj:

Simulacija solarnog sustava: 4 koraka
Simulacija solarnog sustava: 4 koraka

Video: Simulacija solarnog sustava: 4 koraka

Video: Simulacija solarnog sustava: 4 koraka
Video: 4 точки спасут мозг, сосуды от стресса и снимут напряжение 2024, Srpanj
Anonim

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

Kretanje planeta temelji se na stvarnoj fizici, Zakonu univerzalne gravitacije. Ovaj zakon definira gravitacijsku silu koja na masu djeluje drugom masom; u ovom slučaju Sunce na svim planetima, a planeti jedan na drugom.

Za ovaj projekt koristio sam Processing, programsko okruženje temeljeno na javi. Također sam koristio datoteku primjera Processing koja simulira gravitaciju planeta. Sve što vam je potrebno za to je softver za obradu i računalo.

Korak 1: 2 Dimenzionalna simulacija

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

Ja sam stvorio planetarni objekt koji je imao 'dječje planete', a koji su također imali 'dječje' planete. Kod za 2D simulaciju nije dovršen jer nisam imao sjajan način za simulaciju gravitacijskih sila za svaki planet. Okrenuo sam se od ovog načina razmišljanja, u smjeru koji se temelji na ugrađenom primjeru obrade gravitacijskog privlačenja. Problem je bio u tome što sam trebao izračunati gravitacijsku silu sa svih ostalih planeta na svakom planetu, ali nisam mogao smisliti kako lako izvući informacije o pojedinom planetu. 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 dva planeta. To mi je omogućilo da simuliram kako funkcioniraju naši solarni sustavi, gdje planete ne privlači samo Sunce, već i svaki drugi planet.

Svaki planet ima nasumično generirane karakteristike kao što su masa, polumjer, početna orbitalna brzina itd. Planeti su čvrste kugle i Sunce je sfera od žičane mreže. Osim toga, mjesto kamere se okreće oko središta prozora.

Korak 3: Korištenje 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 sustav. Napravio sam niz objekata planeta 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 omjer 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 bih za poboljšanje vidljivosti orbita dodao trag iza svakog planeta 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 2. dijelu video serije Coding Train o ovoj temi. Ova knjižnica omogućuje gledatelju rotiranje, pomicanje i zumiranje kamere tako da može pratiti cijelu orbitu planeta.

3. Konačno, planeti se trenutno ne razlikuju jedan od drugog. Volio bih svakom planetu i Suncu dodati 'kože' kako bi gledatelji prepoznali Zemlju i slično.

Preporučeni: