Схема та же, что у маятника, – симплектический Эйлер. Но теперь между двумя её половинами появляется работа: чтобы посчитать силу, надо сначала узнать, где планета оказалась, и заново разложить ускорение по осям.
Состояние – четыре числа
У маятника состояние задавалось двумя числами: угол и скорость. Здесь тело движется по плоскости, и состояние – четыре числа:
float x, y; // где планета
float v_x = 0.0f, v_y = 0.5f; // куда и как быстро летит
Правило общее: на каждую степень свободы – координата и скорость. Движение по плоскости даёт две степени свободы, значит четыре числа. В трёхмерной задаче было бы шесть, для ста частиц в плоскости – четыреста.
Всё остальное – расстояние, ускорение, энергия – из этих четырёх чисел вычисляется и хранить его не нужно.