Staram się stworzyć prostą grę, w której wystrzeliwany jest statek kosmiczny, a następnie na jego ścieżkę wpływa grawitacja planet.
Podobne do tej gry: http://sciencenetlinks.com/interactives/gravity.html
Chcę wiedzieć, jak odtworzyć wpływ planet na statek kosmiczny w tej grze, aby statek kosmiczny mógł „okrążać” planetę, aby zmienić kierunek.
Udało mi się osiągnąć fałszywe wyniki, w których statek zapętla się w ogromnej elipsie wokół planety lub tylko nieznacznie wpływa na nią grawitacja planety za pomocą wektorów.
Z góry dziękuję.
ps Mam duże doświadczenie w programowaniu, ale nie mam nic wspólnego z twórcami gier.
Każda planeta powinna mieć pole grawitacyjne, które ciągnie dowolny obiekt w pobliżu w kierunku jego środka. Innymi słowy, powinieneś przykładać siłę z pozycji statku kosmicznego do centrum planety na każdym etapie symulacji.
Siła ta zależy od masy obu obiektów, ale w tym przypadku, ponieważ masa statku kosmicznego jest prawdopodobnie nieznaczna w porównaniu z planetą, możesz po prostu wypróbować inną stałą w zależności od wielkości planety, dopóki nie poczujesz się dobrze.
Co najważniejsze, siła ta maleje wraz ze wzrostem odległości między oboma obiektami. Zrobisz to dzieląc dzielącą odległość między nimi. Po pewnym dystansie możesz chcieć „ręcznie” odciąć i przestać przykładać siłę.
Wystarczy przełożyć tę siłę na przyspieszenie, a pozostałe równania fizyczne zajmą się resztą.
W pseudokodzie
źródło