Satura rādītājs:

Saules sistēmas simulācija: 4 soļi
Saules sistēmas simulācija: 4 soļi

Video: Saules sistēmas simulācija: 4 soļi

Video: Saules sistēmas simulācija: 4 soļi
Video: How big is the Solar System? 2024, Jūlijs
Anonim

Šim projektam es nolēmu izveidot simulāciju par to, kā gravitācija ietekmē planētu ķermeņu kustību Saules sistēmā. Augšējā videoklipā / Saules ķermeni attēlo stiepļu tīkla sfēra, un planētas tiek ģenerētas nejauši.

Planētu kustības pamatā ir reāla fizika, Vispārējās gravitācijas likums. Šis likums nosaka gravitācijas spēku, ko uz masu iedarbina cita masa; šajā gadījumā Saule uz visām planētām, un planētas viena uz otras.

Šim projektam es izmantoju apstrādi, uz Java balstītu programmēšanas vidi. Es izmantoju arī apstrādes piemēra failu, kas simulē planētu gravitāciju. Viss, kas jums nepieciešams, ir apstrādes programmatūra un dators.

1. solis: 2 Dimensiju simulācija

Sākumā skatījos dažus videoklipus par to, kā kodēt šo saturu, ko Dens Šifmens izveidoja savā YouTube kanālā Kodēšanas vilciens (1/3. Daļa). Šajā brīdī es domāju, ka izmantošu rekursiju, lai ģenerētu Saules sistēmu, līdzīgi kā Šifmens to dara tikai, izmantojot fizikas likumus.

Es izveidoju planētas objektu, kurā bija “bērnu planētas”, kurām savukārt bija arī “bērnu” planētas. 2D simulācijas kods netika pabeigts, jo man nebija lielisks veids, kā simulēt gravitācijas spēkus katrai planētai. Es pagriezos no šī domāšanas veida virzienā, kas balstīts uz iebūvēto gravitācijas pievilcības apstrādes piemēru. Jautājums bija tāds, ka man vajadzēja aprēķināt gravitācijas spēku no visām pārējām planētām uz katras planētas, bet nevarēju iedomāties, kā viegli iegūt informāciju par atsevišķu planētu. Pēc tam, kad redzēju, kā Apmācības apmācība to dara, es precīzi sapratu, kā to izdarīt, izmantojot cilpas un masīvus

2. solis: pārnesiet to uz 3 dimensijām

Izmantojot Planetary Attraction koda piemēru, kas tiek piegādāts kopā ar apstrādi, es sāku jaunu 3D simulācijas programmu. Galvenā atšķirība ir planētas klasē, kur es pievienoju pievilcības funkciju, kas aprēķina gravitācijas spēku starp divām planētām. Tas ļāva man simulēt, kā darbojas mūsu Saules sistēmas, kur planētas ne tikai piesaista saule, bet arī visas citas planētas.

Katrai planētai ir nejauši ģenerētas īpašības, piemēram, masa, rādiuss, sākotnējais orbitālais ātrums utt. Planētas ir cietas sfēras, un Saule ir stiepļu tīkla sfēra. Turklāt kameras atrašanās vieta rotē ap loga centru.

3. darbība. Īstu planētu izmantošana

Image
Image

Pēc tam, kad es saņēmu 3D simulācijas ietvaru, es izmantoju Wikipedia, lai atrastu mūsu Saules sistēmas faktiskos planētu datus. Es izveidoju planētu objektu masīvu un ievadīju reālos datus. Kad es to izdarīju, man bija jāsamazina visas īpašības. Kad es to izdarīju, man vajadzēja ņemt faktiskās vērtības un reizināt ar koeficientu, lai samazinātu vērtības, tā vietā es to darīju Zemes vienībās. Tas ir, es paņēmu Zemes vērtības attiecību pret citu objektu vērtību, piemēram, Saulei ir 109 reizes lielāka masa nekā Zemei. Tomēr tas noveda pie tā, ka planētu izmēri šķita pārāk lieli vai pārāk mazi.

4. solis: pēdējās domas un komentāri

Ja es turpinātu strādāt pie šīs simulācijas, es precizētu/uzlabotu dažas lietas:

1. Vispirms es vienmērīgi mērogošu visu, izmantojot to pašu mērogošanas koeficientu. Tad, lai uzlabotu orbītu redzamību, es pievienotu taku aiz katras planētas, lai redzētu, kā katra revolūcija ir salīdzināma ar iepriekšējo

2. Kamera nav interaktīva, kas nozīmē, ka daļa orbītu ir ārpus ekrāna, "aiz personas", kas skatās. Ir 3D kameru bibliotēka ar nosaukumu Peazy Cam, kas tiek izmantota Kodēšanas vilciena video sērijas par šo tēmu 2. daļā. Šī bibliotēka ļauj skatītājam pagriezt, panoramēt un tuvināt kameru tā, lai viņš varētu sekot visai planētas orbītā.

3. Visbeidzot, planētas pašlaik nav atšķiramas viena no otras. Es gribētu katrai planētai un Saulei pievienot “ādas”, lai skatītāji varētu atpazīt Zemi un tamlīdzīgi.

Ieteicams: