- Давайте предположим, что первая точка,
А, имеет нулевую скорость. В этом случае это
должно быть очень просто найти
направление, которое даст
самое быстрое пересечение.
- Теперь у есть скорость. Мы можем заставить его иметь нулевую скорость, вычтя его вектор скорости из вектора B. Теперь мы можем решить, как это было в 1.
Просто грубая идея, которая пришла в голову ...
Еще несколько мыслей:
Если A стоит неподвижно, то направление B, в котором нужно двигаться, находится непосредственно в направлении A. Это дает нам направление в системе координат, в которой A стоит неподвижно. Давайте назовем это д.
Теперь нам нужно только преобразовать направление B, необходимое для перемещения из системы координат, в которой A все еще находится, в систему координат, в которой A движется с заданной скоростью и направлением d2.
Это просто векторное сложение. d3 = d - d2
Теперь мы можем найти направление d3.
И немного более формально:
А стационарно :
Sb = скорость B, известная скалярная
alpha = atan2 (a_y-b_y, a_x-b_x)
Vb_x = Sb * cos (alpha)
Vb_y = Sb * sin (alpha)
A движется со скоростью Sa, направление бета :
Vb_x '= Sb * cos (альфа) + Sa * cos (бета)
Vb_y '= Sb * sin (альфа) + Sa * sin (бета)
alpha '= atan2 (Vb_y', Vb_x ')
Выше не проверялось, но на первый взгляд это выглядит разумно ...