Obsah:

Simulace sluneční soustavy: 4 kroky
Simulace sluneční soustavy: 4 kroky

Video: Simulace sluneční soustavy: 4 kroky

Video: Simulace sluneční soustavy: 4 kroky
Video: prof. P. Kulhánek: Pulsary na lovu gravitačních vln [Fyz. čtvrtek] 2024, Červenec
Anonim

Pro tento projekt jsem se rozhodl vytvořit simulaci toho, jak gravitace ovlivňuje pohyb planetárních těles ve sluneční soustavě. Ve videu výše / je těleso Slunce reprezentováno koulí z drátěného pletiva a planety jsou generovány náhodně.

Pohyb planet je založen na skutečné fyzice, zákonu univerzální gravitace. Tento zákon definuje gravitační sílu působící na hmotu jinou hmotou; v tomto případě Slunce na všech planetách a planety na sobě navzájem.

Pro tento projekt jsem použil Processing, programovací prostředí založené na javě. Použil jsem také příklad souboru Processing, který simuluje gravitaci planet. Vše, co k tomu budete potřebovat, je software pro zpracování a počítač.

Krok 1: 2 Dimenzionální simulace

Začal jsem sledováním několika videí o kódování, které vytvořil Dan Shiffman na svém kanálu YouTube, Coding Train (část 1/3). V tomto okamžiku jsem si myslel, že k vytvoření sluneční soustavy použiji rekurzi, podobně jako to dělá Shiffman pouze pomocí fyzikálních zákonů.

Vytvořil jsem planetární objekt, který měl „dětské planety“, které zase měly také „dětské“planety. Kód pro 2D simulaci nebyl dokončen, protože jsem neměl skvělý způsob, jak simulovat gravitační síly pro každou planetu. Odvrátil jsem se od tohoto způsobu myšlení ve směru založeném na vestavěném příkladu zpracování gravitační přitažlivosti. Problém byl v tom, že jsem potřeboval vypočítat gravitační sílu ze všech ostatních planet na každé planetě, ale nedokázal jsem vymyslet, jak snadno vytáhnout informace o jednotlivé planetě. Poté, co jsem viděl, jak to tutoriál Processing dělá, jsem si přesně uvědomil, jak to udělat místo toho pomocí smyček a polí

Krok 2: Rozvedení do 3 dimenzí

Pomocí ukázkového kódu pro Planetary Attraction, který je součástí zpracování, jsem spustil nový program pro 3D simulaci. Hlavní rozdíl je ve třídě Planet, kde jsem přidal přitažlivou funkci, která vypočítává gravitační sílu mezi dvěma planetami. To mi umožnilo simulovat, jak fungují naše sluneční soustavy, kde planety nejsou přitahovány pouze sluncem, ale také každou jinou planetou.

Každá planeta má náhodně generované charakteristiky, jako je hmotnost, poloměr, počáteční orbitální rychlost atd. Planety jsou pevné koule a Slunce je koule z drátěného pletiva. Umístění kamery se navíc otáčí kolem středu okna.

Krok 3: Použití skutečných planet

Image
Image

Poté, co jsem dostal rámec pro 3D simulaci, použil jsem Wikipedii k nalezení aktuálních planetárních dat pro naši sluneční soustavu. Vytvořil jsem řadu planetových objektů a vložil skutečná data. Když jsem to udělal, musel jsem zmenšit všechny vlastnosti. Když jsem to udělal, měl jsem vzít skutečné hodnoty a vynásobit je faktorem ke snížení hodnot, místo toho jsem to udělal v jednotkách Země. Vzal jsem poměr hodnoty Země k hodnotě ostatních objektů, například Slunce má 109krát větší hmotnost než Země. To však vedlo k tomu, že velikosti planet vypadaly příliš velké nebo příliš malé.

Krok 4: Závěrečné myšlenky a komentáře

Pokud bych měl na této simulaci pokračovat, vylepšil/vylepšil bych pár věcí:

1. Nejprve bych vše jednotně škáloval pomocí stejného měřítka. Abych zlepšil viditelnost oběžných drah, přidal bych za každou planetu stopu, abych viděl, jak se každá revoluce porovnává s předchozí

2. Fotoaparát není interaktivní, což znamená, že část oběžných drah je mimo obrazovku a dívá se „za osobou“. Existuje knihovna 3D kamer s názvem Peazy Cam, která se používá v části 2 video série Coding Train na toto téma. Tato knihovna umožňuje divákovi otáčet, posouvat a přibližovat kameru tak, aby byl schopen sledovat celou oběžnou dráhu planety.

3. Nakonec jsou planety v současné době navzájem nerozeznatelné. Rád bych na každou planetu a Slunce přidal „skiny“, aby diváci poznali Zemi a podobně.

Doporučuje: