Comments 11
Интересная тема, люблю такой эффект. Я когда-то подобное в своей игрухе делал (в 2D, правда) примерно так: шум Перлина не использовал, а просто между точками старта и цели генерил N случайных точек, а потом двигал ракеты через них, используя сплайн Катмулла-Рома. Насколько помню, это вычислительно легче оказалось, чем Безье считать.
Писал на юнити что-то подобное. У ракеты была постоянная скорость движения к цели V и скорость поворота (наведения) Vr, без "хаотики" при выборе траектории. Выбор этих двух величин влиял на поведение в полёте. Например, можно было создать быструю, но "тугодумную" ракету, которая просто не успевала отслеживать цель при пуске с определённой дистанции / в неком направлении и летела несколько эллипсов, прежде чем попасть. Или вообще не могла попасть, ложась на круговую орбиту.
А то же самое в движущиеся мишени можно придумать?
Можно просчитывать кривые с шумом для каждого кадра. Тогда смещение конечной точки будет учитываться для движения ракеты. И появится возможность для цели выполнить маневр уклонения :)
Попробовал вспомнить то, что рассказывали в рамках предмета "Теория оптимального управления" на харьковском мехмате, году эдак 95ом - 96ом.
Для наведения ракет на маневрирующую цель может использоваться метод "половинного спрямления траектории"
Модель такая: есть цель, для которой известны скорость, направление движения в данный момент, и известно, что ускорение бокового маневра ограничено некоторым значением.
Тоже самое известно и для ракеты, которую наводим.
Для цели вычисляем примерную точку где она окажется в момент подлета ракеты, если цель не будет маневрировать. Ракету перенацеливаем в точку посередине между текущим положением и спрогнозированным. И так цикл за циклом.
Скорее всего немного наврал, так как по-памяти.
Дальше - отсебятина.
Можно попробовать модифицировать алгоритм наведения, добавив ракете боковой маневр случайной длительности в случайном направлении, случайным ускорением в диапазоне, скажем, до половины максимального.
Имеет смысл, если цель может отстреливаться от ракет.
В реальности алгоритм должен быть заметно сложнее, чтобы обеспечить одновременный подлет всех ракет залпа.
Наверняка периодически возникают пересечения траекторий разных ракет. Добавьте взаимное уничтожение ракет при столкновении. Интересно посмотреть
Это ж перевод. Пишите автору оригинального текста :)
https://blog.littlepolygon.com/posts/missile/
Я предчувствую минусы за тематику, но не могу удержаться, поскольку для меня маневрирование боевых ракет - это определенная техническая эстетика, выраженное в движении решение технических задач.
Например, "танцующий" запуск МБР с поезда БЖРК - ракета после выхода из установки специальным двигателем отклоняется от вертикальной оси, чтобы не повредить насыпь и состав работой маршевого двигателя: Шакальное видео 1; момент пуска из док. фильма 2; замедленный момент из блогерского ролика 3, полное видео пуска 4 (все лучше без звука).
Похожий по смыслу запуск ракеты "Бастион" со срабатыванием и отстрелом корректирующих двигателей в носовой части: Видео с разных ракурсов (чистый звук без блевотного закадра).
Полет ракеты "земля-воздух" HQ-17: Видео (как и положено шортсу, со всратой музыкой).
Класс! :)
Добавлю в закладки)
You recovered a drunk missile!
https://images.gog-statics.com/210d8faa12d2cd77cc8a9e7b7c06861a5bfff03c6742857b1a8be401212464e9.jpg
Математика самонаводящихся ракет из аниме