Хорошо, я пишу космический симулятор для 3D-игры, и я хотел бы реализовать в нем гравитацию объектов.
Есть ли хороший способ найти вектор скорости, который можно добавить к выходному вектору моего двигателя, чтобы создать эффект гравитации.
Кроме того, как мне найти скорости, необходимые для вывода объекта А на орбиту вокруг объекта В на определенном расстоянии?
Что ж, нужно либо решать дифференциальные уравнения (наверное, здесь не лучший способ), либо моделировать численно.
Невозможно определить скорость произвольного созвездия, не зная его прошлого. Так что вам нужно следить за скоростью всего, а также.
В основном вам нужны эти уравнения/назначения:
Суммируйте все гравитационные силы любой другой массы в вашем мире.
есть ускорение рассматриваемой массы по направлению к -ая масса. гравитационная постоянная Ньютона, .
Полное ускорение на объекте суммируется с ускорением на объекте. Вы должны добавить векторно здесь. Если, например, у вас есть две противодействующие силы, масса вообще не будет ускоряться.
Это ускорение на массу при привлечении другой массы . Вы должны умножить его на выбранный чтобы получить изменение скорости. Чем меньше вы его выберете, тем точнее будет ваша симуляция, но это займет больше времени. Вам нужно попробовать разные значения для него.
И используйте эту обновленную скорость для расчета изменения положения.
, и являются векторами в трехмерном пространстве.
Основная идея , , где и являются константы интегрирования. В этом контексте они представляют собой скорость и расстояние, которые объект уже имеет или прошел соответственно.
Чтобы получить такую орбиту, вы должны установить центростремительную силу равной силе гравитации. Или вы говорите, что центробежная сила и гравитация компенсируют друг друга.
Так что либо начните с
или
масса спутника, масса большого объекта, т.е. планеты. гравитационная постоянная и это расстояние между двумя объектами.
В любом случае, вы получите
Как тангенциальная скорость для орбиты с радиусом вокруг объекта с массой . Это предполагает, что другой объект намного тяжелее спутника.
Бернхард
dmckee --- котенок экс-модератор
Земля это ложка