Я создаю простой симулятор астрономии, который должен использовать ньютоновскую физику для симуляции движения планет в системе (или любых других объектов). Все тела представляют собой круги в евклидовой плоскости, которые обладают такими свойствами, как положение, скорость, масса, радиус и результирующая сила.
Я хочу обновить юниверс за небольшие промежутки времени, обычно за несколько миллисекунд, но я не уверен, как правильно рассчитать изменения в положении.
Сила проста: fr = sum(G * body.m * bodyi.m / dist(body, bodyi)^2)
.
Но как мне идти дальше?
Я мог бы сделать это:
a = Fr/body.m
v += a*dt
position += v*dt
Но это, конечно, было бы ложным. Может быть, если бы я добавил 0,5 в качестве фактора при расчете позиции?