У меня есть корабль, который движется с максимальной скоростью maxSpeed
и может поворачиваться на rotationSpeed
градусы в секунду. Корабль всегда движется в том направлении, в котором он стоит, что означает, что чем быстрее движется корабль, тем больше его радиус поворота.
Я знаю свою позицию, а также вращение и позицию цели.
Я хотел бы выяснить, находится ли цель в пределах моего радиуса поворота на этой скорости, или лучше, какова максимальная скорость, на которой я могу двигаться, чтобы сделать поворот к цели, не вращаясь вокруг нее постоянно.
Есть ли эффективный (ish) способ сделать это?
Вот что я думаю до сих пор: поскольку я знаю, как далеко я путешествую за шаг и сколько я вращаюсь за шаг, я могу понять, где я буду в следующих двух кадрах. Моя текущая позиция - p1, следующая позиция - p2, затем p3. Я могу взять перпендикулярные биссектрисы (p1, p2) и (p2, p3). Их точка пересечения даст мне центр круга. Затем я могу проверить, находится ли цель в этом круге.
Я не уверен, что это будет работать в 3D (я не уверен, как рассчитать сферу с моими входами). Это решение также не слишком помогает в поиске правильной скорости, с которой нужно двигаться, мне пришлось бы попробовать несколько раз с разными скоростями, чтобы найти приемлемую.
Может кто-нибудь пролить свет на лучшее решение?
источник