Если у меня есть точка, в которую я хочу попасть в конце или во время параболической дуги, как бы я рассчитал необходимую скорость x и y?
20
Если у меня есть точка, в которую я хочу попасть в конце или во время параболической дуги, как бы я рассчитал необходимую скорость x и y?
Ответы:
Параболическая функция лотка определяется как:
Известные значения:
Неизвестные значения:
Чтобы вычислить «Vo», мы можем дать значения функции F:
Теперь вы можете получить все значения, чтобы достичь цели из источника, давая значения t в уравнение F:
источник
Недавно мне пришлось решить аналогичную проблему, я нашел два решения, основанные на формуле, которую я нашел на странице википедии «Дэн Человек», уже упоминавшейся: Траектория снаряда
В этом решении вам фактически необходимо либо фиксированный угол запуска, либо скорость x. Скорость Y не нужна, поскольку мы запускаем снаряд под определенным углом.
Решение 1, угол запуска фиксирован, рассчитать скорость:
Решение 2, скорость фиксирована, рассчитать угол запуска:
В моем случае это решение работало довольно хорошо.
источник
Если вас не волнует, математически ли это правильно, только то, что это выглядит достаточно корректно, рассчитайте прямой путь и заставьте ваш снаряд следовать этому пути, но «подтолкните его вверх» вдоль нормали этой линии в зависимости от расстояния вниз отрезок линии, поэтому он поднимается по мере приближения к середине отрезка и падает по мере удаления от середины отрезка.
Вы можете использовать синусоидальную волну для этого, используя диапазон градусов от -90 до +90 (где -90 - левая точка на отрезке, 90 - правая точка, а вы - в середине), и умножить результат постоянным, чтобы увеличить его.
Если вам нужен чисто правильный математический / физический ответ, это не поможет. Если вы этого не сделаете, это может работать очень хорошо для вас!
Не забывайте, что при программировании игр используются иллюзии, которые выглядят правильными (и обходятся дешевле) вместо реализма.
источник
Если вам просто нужно что-то правильное и с фиксированной скоростью, вы можете использовать этот очень упрощенный метод.
Расстояние может быть отрицательным, но оно все равно будет работать, потому что угол также зависит от расстояния. Если расстояние отрицательно, угол, который нужно добавить, тоже отрицателен.
Вам нужно будет поиграться с distanceFactor, чтобы найти правильное значение. Это зависит от тяжести и мощности снаряда. Оно должно быть около 1, деленное на максимальное расстояние, которое может пройти снаряд.
источник