Cześć!
W ramach zabawy z processing staram się zwizualizować prawa Keplera. Zgodnie z nim satelita na orbicie eliptycznej porusza się ze stałą prędkością polową. I tutaj pojawia się problem. O ile nie mam problemu z poruszaniem obiektu po elipsie ze stałą prędkością, korzystając ze wzorów:
x = acos(t);
y = bsin(t);
o tyle nie wiem jak zmodyfikować wzór na współrzędne kartezjańskie satelity, by finalnie poruszał się najszybciej w perygeum i najwolniej w apogeum. Ktoś się z czymś takim kiedyś spotkał?
Tak, spotykali się z tym i niejedni.
Tu masz kilka wzorów:
http://en.wikipedia.org/wiki/Kepler_orbit
Najprościej chyba będzie liczyć to z Newtona, czyli całkować numerycznie jakąś prostą metodą.
Metoda Cromera wystarczy, albo jakiejś żaby...
http://en.wikipedia.org/wiki/Euler-Cromer_algorithm
Liczysz tylko takie coś w każdym kroku:
v = v + a dt i r = r + v dt
to jest wektorowe: v = (vx,vy,vx), r = (x,y,z); dt - krok czasowy, np. 1/10000 okresu.
Przyspieszenie obliczamy z Newtona: a = (ax,ay,az) = GMm/r2 * r0; nie zależy od czasu.
Należy to obliczać dla obu mas, ale gdy jedna jest miliony razy większa od drugiej, wówczas wystarczy tylko mniejszą liczyć.