Obsah:

Simulácia slnečnej sústavy: 4 kroky
Simulácia slnečnej sústavy: 4 kroky

Video: Simulácia slnečnej sústavy: 4 kroky

Video: Simulácia slnečnej sústavy: 4 kroky
Video: Tvoj mozog je divný a REALITA možno neexistuje 2024, November
Anonim

V rámci tohto projektu som sa rozhodol vytvoriť simuláciu toho, ako gravitácia ovplyvňuje pohyb planetárnych telies v slnečnej sústave. Vo videu vyššie / je teleso Slnka reprezentované guľou z drôteného pletiva a planéty sú generované náhodne.

Pohyb planét je založený na skutočnej fyzike, zákone všeobecnej gravitácie. Tento zákon definuje gravitačnú silu pôsobiacu na hmotu inou hmotnosťou; v tomto prípade Slnko na všetkých planétach a planéty na sebe.

Na tento projekt som použil Processing, programovacie prostredie založené na jave. Použil som tiež príklad súboru Processing, ktorý simuluje gravitáciu planét. Všetko, čo k tomu budete potrebovať, je procesorový softvér a počítač.

Krok 1: 2 Dimenzionálna simulácia

Na začiatku som si pozrel niekoľko videí o kódovaní, ktoré Dan Shiffman vytvoril na svojom kanáli YouTube - Kódovací vlak (časť 1/3). V tomto mieste som si myslel, že na vytvorenie slnečnej sústavy použijem rekurziu, podobne ako to robí Shiffman iba pomocou fyzikálnych zákonov.

Vytvoril som objekt planéty, ktorý mal 'detské planéty', ktoré zase mali tiež 'detské' planéty. Kód pre 2D simuláciu nebol dokončený, pretože som nemal skvelý spôsob simulácie gravitačných síl pre každú planétu. Odklonil som sa od tohto spôsobu myslenia v smere založenom na vstavanom príklade spracovania gravitačnej príťažlivosti. Problém bol v tom, že som potreboval vypočítať gravitačnú silu zo všetkých ostatných planét na každej planéte, ale nedokázal som premýšľať o tom, ako ľahko získať informácie o jednotlivej planéte. Potom, čo som videl, ako to tutoriál Spracovanie robí, som si presne uvedomil, ako to urobiť pomocou slučiek a polí

Krok 2: Rozvinutie do troch dimenzií

Použitím ukážkového kódu pre Planetary Attraction, ktorý je súčasťou spracovania, som spustil nový program pre 3D simuláciu. Hlavný rozdiel je v triede Planet, kde som pridal príťažlivú funkciu, ktorá vypočítava gravitačnú silu medzi dvoma planétami. To mi umožnilo simulovať fungovanie našich slnečných sústav, kde planéty nie sú priťahované len slnkom, ale aj každou ďalšou planétou.

Každá planéta má náhodne generované charakteristiky, ako je hmotnosť, polomer, počiatočná obežná rýchlosť atď. Planéty sú pevné gule a Slnko je guľa z drôteného pletiva. Poloha kamery sa navyše otáča okolo stredu okna.

Krok 3: Používanie skutočných planét

Image
Image

Potom, čo som dostal rámec pre 3D simuláciu, som použil Wikipediu na nájdenie skutočných planetárnych údajov pre našu slnečnú sústavu. Vytvoril som množstvo planétových objektov a vložil skutočné údaje. Keď som to urobil, musel som zúžiť všetky vlastnosti. Keď som to urobil, mal som vziať skutočné hodnoty a vynásobiť faktorom na zníženie hodnôt, namiesto toho som to urobil v jednotkách Zeme. Vzal som pomer hodnoty Zeme k hodnote ostatných objektov, napríklad Slnko má 109 -krát väčšiu hmotnosť ako Zem. Výsledkom však bolo, že veľkosti planét vyzerali príliš veľké alebo príliš malé.

Krok 4: Záverečné myšlienky a komentáre

Ak by som pokračoval v práci na tejto simulácii, vylepšil/vylepšil by som niekoľko vecí:

1. Najprv by som všetko jednotne škáloval pomocou rovnakého faktora mierky. Potom, aby som zlepšil viditeľnosť obežných dráh, pridal by som chodník za každú planétu, aby som zistil, ako sa každá revolúcia porovnáva s predchádzajúcou.

2. Fotoaparát nie je interaktívny, čo znamená, že časť obežných dráh je mimo obrazovky a pozerá sa „za osobou“. Existuje knižnica 3D kamier s názvom Peazy Cam, ktorá sa používa v časti 2 video série Coding Train o tejto téme. Táto knižnica umožňuje divákovi otáčať, posúvať a približovať kameru, aby bol schopný sledovať celú obežnú dráhu planéty.

3. Nakoniec, planéty sú od seba v súčasnosti nerozoznateľné. Chcel by som na každú planétu a Slnko pridať „skiny“, aby diváci mohli rozpoznať Zem a podobne.

Odporúča: