Математика - Как построить курс до точки с ограниченной конечной скоростью?
Прежде всего, отказ от ответственности: я публикую здесь этот вопрос, даже если я понимаю, что это довольно сложная математика, потому что мне сложно понять, к какому другому сайту он может принадлежать.
Я пишу 2d игру космических кораблей, где игрок должен будет выбрать пункт назначения корабля, и курс будет автоматически составлен.
Наряду с этим, я предлагаю различные варианты управления ускорением корабля, пока он туда добирается. Все эти опции имеют отношение к скорости цели в пункте назначения.
Один из вариантов - выбрать желаемый пункт назначения и вектор скорости, и в этом случае программа будет использовать кубическую интерполяцию, поскольку доступны начальные и целевые координаты и скорость.
Другой вариант - просто выбрать точку назначения, но позволить игре рассчитать окончательный вектор скорости. Это делается с помощью квадратичной интерполяции (т.е. ускорение является постоянным).
Я хотел бы ввести еще один вариант: позволить игроку выбрать пункт назначения и максимальное абсолютное значение вектора скорости, как в
sqrt( vf_x^2 + vf_y^2 ) <= Vf_max
Я полагаю, что в этом случае я буду использовать полином 3-го порядка, чтобы смоделировать курс, но мне довольно сложно вычислить коэффициенты, поскольку я пропускаю одно уравнение для каждой координаты (то, которое задается скоростью в пункте назначения). Кроме того, я не понимаю, как мне следует использовать Vf_max
ограничение, чтобы помочь мне выяснить недостающие коэффициенты.
Я подозреваю, что это может быть проблемой оптимизации, но я совершенно не осведомлен об этой теме.
Кто-нибудь может помочь мне найти решение или указать мне правильное направление, пожалуйста?