# Stars3D

vytvořil © Jaromír Janisch jako svůj maturitní program

## Minimální konfigurace

3D grafická karta podporující DirectX 9.0c

## Co je to za program?

Stars3D je program simulující pohyb těles v gravitačním poli pomocí Newtonova gravitačního zákona. Nejsou započítávány žádné další teorie jako například kvantová teorie či Einsteinova teorie relativity. Objekty simulace se nazývají hvězdy, i když tento pojem je poněkud zavádějící, protože mohou vyjadřovat téměř cokoliv, od jednotlivých atomů, po jakési kuličky až po opravdové hvězdy. Program počítá interakci jen pomocí gravitace, nedochází tak ke srážkám, hvězdy skrze sebe vždy jen prolétnou. Také se nepočítá s žádnými konkrétními jednotkami, hmotnost je proto vyjádřena jen v "jednotkách hmotnosti", rychlost v "jednotkách rychlosti" a taktéž měřítko je neurčité. Kapa, které Newton použil ve svém vzorci je zjednodušeně považujováno za 1. Simulace probíhá v imaginárním trojrozměrném prostoru, který má, jak je zvykem, 3 osy: X, Y a Z. Každá hvězda má svou unikátní polohu, název, rychlost, hmotnost a také barvu a možnost záření, kdy osvětluje všechny okolní hvězdy.

## V čem to bylo programováno?

Program Stars3D vzniknul ve výjovém prostředí Microsoft Visual Studio 2003 v jazyce C++. Používá DirectX 9.0c Software Developement Kit z měsíce června roku 2005.

## Ovládání

> ### Kamera

> Pro pohyb použijte klávesy W, S, A, D, E, Q kterými ovládáte kameru ve směrech dopředu, dozadu, doleva, doprava, nahoru a dolů. Pro otáčení kamery stiskněte a držte levé tlačítko myši, a současně pohybujte myší ve směru požedovaného otáčení.

> ### Vizuální okno

> Zde se zobrazují jednotlivé hvězdy z pohledu udaného kamerou. Pro výběr hvězdy můžete použít pravé kliknutí myši na danou hvězdu. Při pohybu kurzoru myši po obrazovce se světelně označují hvězdy, které jsou právě pod kurzorem. Právě vybranná hvězda se od ostatních odliší světlejší barvou a zároveň bude vybrána v bílém poli v ovládacím rozhraní. Právě vybraná hvězda se zobrazí jako světlejší. Pokud máte zapnutou volbu Show speed vectors, zobrazují se také vektory rychlosti jednotlivých hvězd jako bílé přímky, jejichž velikost značí rychlost a směr přímky značí směr rychlosti. Hvězda je zobrazována ve velikosti, která promítá její hmotnost. Přesněji je to 3. odmocnina z hmotnosti.

> ### Ovládací rozhraní

> Ovládací rozhraní je rozděleno na 3 části.

> 1. Ovládání vybrané hvězdy

> Zde měníte nastavení právě vybrané hvězdy. Kolonka Name označuje jméno hvězdy. V sekci Position nastavujete aktuální pozici hvězdy v souřadnicovém systému XYZ. V sekci Speed nastavujete aktuální rychlost hvězdy v souřadnicovém systému XYZ. Kolonka Weight udává hmotnost hvězdy. Tři posuvné ukazatele udávají barvu vybrané hvězdy, přičemž první udává červenou barvu, druhý zelenou barvu a poslední barvu modrou. Zaškrtnutím políčka Shines začne daná hvězda zářit do okolí stejnou barvou, jako je ona sama. Všechny tyto vlastnosti dané hvězdy můžete podle libosti upravovat.

> 1. Prvky pro obecné ovládání hvězd

> Tlačítkem Add vytvoříte novou hvězdu na momentální pozici kamery. Tlačítkem Delete vymažete právě vybranou hvězdu. V bílém okně vlevo se zobrazují všechny vytvořené hvězdy podle jejich jména.

> 2. Prvky pro manipulaci s prostředím programu

> Posuvnítkem Time speed udáváte přesnost výpočtů. Tento čas se použije jako hodnota,se kterou výpočet nové pozice všech hvězd pracuje. Čím menší, tím přesnější ale také pomalejší výpočet. Posuvnítkem Show speed udáváte rychlost zobrazování. Tato hodnota nemá vliv na přesnost. Znamená, kolikrát za každý snímek se provede výpočet nové pozice všech hvězd. Pro rychlé zastavení a opětovné spuštění zobrazování můžete použít zaškrtávací políčko Run. Políčko Show speed vectors označuje, zda se mají vykreslovat vektory rychlosti zmíněné výše. Políčko Show debug je používáno pro ladící výpisy a při povolení se na obrazovce budou zobrazovat statistiky vykreslování (FPS, momentální rozlišení atd.) a matice popisující momentální 3D prostor (World, View a Projection). Při zaškrtnutí políčka Directional light budou všechny hvězdy osvětleny konstantním světlem přicházejícím z nekonečna z jednoho směru. Tuto volbu doporučuji mít zapnutou jen, pokud nemáte hvězdu se zapnutým zářením (Shines). Pokud chcete momentální konfiguraci uložit, použijte bílé políčko, kam vložíte jméno souboru a poté tlačítko Save. Soubor se uloží do momentálního adresáře. Pro opětovné nahrání konfigurace použijte tlačítko Load, přičemž jméno souboru opět zadejte do bílého políčka nalevo. Pro ukončení programu použijte tlačítko Exit. Tlačítko Setup vás přepne do dialogu, kde nastavujete různé předvolby týkající se zobrazování (například Anti-aliasing). Text vpravo dole udává jméno programu, jeho verzi a jméno tvůrce.

verze 1.01