Wpis z mikrobloga

Pracuję od kilku miesięcy nad symulatorem lotów orbitalnych, który ma wbudowaną maszynę wirtualną z własnym językiem asemblera. VM steruje lotem rakiety (podobnie jak na przykład Apollo Guidance Computer sterował lotem statku Apollo).
Pisze się programy w języku VM, które wprowadzają statek kosmiczny na orbitę o określonych parametrach, itp.

Nie korzystam z żadnych gotowych silników: wszystko oprogramowuję od podstaw sam w C++ (i "nowoczesnym" OpenGL) - łącznie z obliczeniami fizyki, renderowaniem grafiki i translatorem języka VM. (m. in. z tego powodu grafika wciąż nie zachwyca, ale robię postępy). Załączam kilka screenów.

Powiem tak: Jak raz spojrzysz w otchłań, to uważaj, bo otchłań może Cię... pochłonąć.
Dużo się mówi o wadach języka C++, jednak poziom świadomości i kontroli nad sprzętem, jaki daje to narzędzie, trudno jest porównać z czymkolwiek innym.

Za jakiś czas upublicznię kod źródłowy. Pod tagiem #symulatorlotoworbitalnych będę co jakiś czas umieszczał info o postępach prac.

#cplusplus #programowanie #fizyka #astronautyka #symulatorlotoworbitalnych
Pobierz
źródło: comment_1664037071i0zFq3HpMKtXC5r44Uq3iQ.jpg
  • 25
@NieBendePrasowac: To prawda. Na obecnym etapie implementacji (fizyka będzie jeszcze rozwijana): jest to do dosyć mocno uproszczone. Rakieta jest jednolitą bryłą sztywną. Na końcu rakiety umocowany jest wektor ciągu (silnik) Masa rakiety maleje wraz z czasem (spalanie paliwa).
W uproszczeniu: Na rakietę działają trzy siły: wektor grawitacji planety, wektor siły ciągu i wektor ciśnienia dynamicznego atmosfery (liczony na postawie aktualnego wektora prędkości rakiety i gradientu zmiany ciśnienia atmosfery wraz z wysokością).
@gacek_w: Planujesz dodać symulację całego układu słonecznego, czy wolisz mniejszy projekt? I jak bardzo zaawansowane to będzie? Coś z uproszczeniami jak kerbale, czy może odrobinę bardziej zaawansowane, gdzie symulowane będą np. punkty Lagrange’a? Podejrzewam, że bardzo dużym problemem przy powiększaniu projektu może być dokładność liczb float i o ile przy Ziemii będzie to jakoś działać, tak przy całym układzie mogą być pewne komplikacje
Planujesz dodać symulację całego układu słonecznego, czy wolisz mniejszy projekt?


@KaiserBrotchen: Tak, od samego początku prac miałem na uwadze cały układ słoneczny. Nie widać tego na załączonych obrazkach, ale w symulacji jest jeszcze Słońce i Księżyc (w rzeczywistych odległościach i rozmiarach)
I rzeczywiście problem precyzji arytmetyki zmiennoprzecinkowej był bardzo poważny i bardzo trudny do rozwiązania. Jego rozwiązanie zajęło mi 2 - 3 tygodnie i niewiele brakowało, abym przez to zaniechał dalszych
Dziękuję wszystkim za zainteresowanie, pytania i miłe słowa. Szczerze nie spodziewałem się takiego odzewu. To dodatkowy motywator do dalszej ciężkiej pracy. Rzecz będzie udostępniona jako open-source na githubie (już jest, ale na razie w prywatnym repo). Prawdopodobnie zrobię też stonkę opisującą program, itd.