PDA

Просмотр полной версии : Стрельба с упреждением


PlutDem
21.02.2012, 23:41
Здравствуйте, как рассчитать, куда повернуть звездолет, что бы он достиг точки выстрела и поразил, выпущенным снарядом(движущимся с опр. скоростью) вражеский звездолет? Каждую итерацию к текущей скорости звездолетов прибавляется вектор ускорения, направленный прямо по курсу звездолета. После чего вектор скорости обрезается до максимальной скорости звездолета.
Нужно учесть:
1. Постоянную скорость снаряда.
2. Скорость поворота.
3. Если максимальная скорость не достигнута, то звездолет будет двигаться с ускорением пока не достигнет ее.
4.Звездолет может поворачивать во время движения.

Silicium
22.02.2012, 01:01
Условие попадания (в предположении, что враг движется равномерно и прямолинейно) таково: вектор скорости врага отностительно снаряда должен быть направлен на последний. Это значит, что в системе отсчета, связанной со снарядом скорость врага пропорциональна его радиус-вектору. Короче, решение не претендует на изящность, но вроде должно прокатить:
Vx = Wx - cos(dx/dy) * sqrt (W^2 + V^2 - 2 * (WxVx+WyVy))
Vy = Wy - sin(dx/dy) * ...
Vx = иксовая компонента снаряда, Vy - игрековая
W - скорость врага.