Я делаю 2D-игру, в которой вы управляете космическим кораблем и летите между дискообразными планетами разного размера (масса/притяжение). Планеты маленькие и можно пролететь рядом сразу с несколькими. Мне нужно рассчитать гравитацию, создаваемую каждой из этих планет, притягивающих корабль, включая скорость корабля.
Я придумал способ приблизиться к этому:
Это может быть хорошим приближением, и точность в моем случае не имеет большого значения, но мне интересно, есть ли лучший способ сделать это с помощью физических формул. Я еще не посещал уроки физики. Другая основная проблема с этим решением заключается в том, что оно должно вычислять его шаг за шагом или кадр за кадром. Если бы для этого существовала формула, путь можно было бы рассчитать с самого начала.
Формула гравитации . Так что храните переменные для вашего и скорости (или массив или любой другой метод, который вы хотите) и меняйте свое положение на скорость в каждом кадре. Кроме того, в каждом кадре используйте цикл (я не знаю, какой язык вы используете, поэтому я не могу дать точный код), чтобы посмотреть на каждую планету и подставить все в формулу и изменить скорость на величину, которую она возвращает, в направление планеты. Умножьте / разделите его на все, что вы хотите, чтобы сделать его разумным, если вы не используете фактические единицы, и в этом случае разделите число на массу корабля. Сделайте это для каждой планеты в системе.
Что касается предварительных вычислений, это, вероятно, технически возможно, но потребует нелепого количества математики и может быть более сложным (для компьютера), чем покадровое обновление. хотя есть одно тело, траекторию не так уж сложно предсказать.
Мусорный контейнерDoofus
Кивон
Мусорный контейнерDoofus