Tworzę prosty symulator astronomiczny, który powinien wykorzystywać fizykę newtonowską do symulacji ruchu planet w układzie (lub dowolnych obiektach, jeśli o to chodzi). Wszystkie ciała są okręgami na płaszczyźnie euklidesowej, które mają takie właściwości, jak położenie, prędkość, masa, promień i wynikowa siła.
Chcę aktualizować wszechświat w krótkich odstępach czasu, zwykle kilka milisekund, ale nie jestem pewien, jak poprawnie obliczyć zmiany położenia.
Siła jest prosta fr = sum(G * body.m * bodyi.m / dist(body, bodyi)^2)
.
Ale jak mam dalej?
Mógłbym to zrobić:
a = Fr/body.m
v += a*dt
position += v*dt
Ale to oczywiście byłoby fałszywe. Może gdybym dodał 0,5 jako czynnik do obliczania pozycji?