galaxy
je jednoduchý polofyzikální n-částicový simulátor galaxií napsaný v C++.
- Orthtree a aproximované n-částicové simulace s pomocí algoritmu Barnes-Hut
- 2D a 3D simulace
- Nastavitelnost jednotek simulace
- Grafy zachování energie
- Dva vykreslovací backendy:
- OpenCV
- podporuje zapisování mp4 videa
- Raylib
- původní backend bylo OpenCV, nešlo mi ale rozběhnout na Windowsu, takže nakonec vznikl Raylibový backend
- bohužel o něco pomalejší
- OpenCV
- (Zatím) dvě základní integrační metody (eulerovská a leapfrog)
- Možnosti konfigurace počátečních podmínek simulace
- Konfigurační soubory v přehledném formátu TOML
galaxy simulation.toml
kde simulation.toml
je platný soubor s nastavením simulace. Ukázkové nastavení simulací naleznete ve složce examples. V souboru examples/basic.toml je v komentářích dokumentace ke všem základním nastavením simulace.
mkdir build
cd build
cmake ../src
cmake --build .
./galaxy ../examples/basic.toml
Stačí pustit CMake přes VisualStudio a pak zbuilděný program spustit se správnými argumenty (cestou ke konfiguračnímu souboru, např. základní ukázce examples/basic.toml
).
Z důvodů kompatibility je defaultní backend Raylib. Pro přepnutí na OpenCV backend stačí v build složce spustit následující příkaz:
cmake -DUSE_OPENCV_GRAPHICS=YES .
Při příštím cmake --build .
se program zbuildí s OpenCV backendem.