У мене є корабель, який рухається з максимальною швидкістю maxSpeed
і може повертати rotationSpeed
градуси в секунду. Корабель завжди рухається в напрямку, в якому він стикається, а це означає, що чим швидше корабель рухається, тим більший його радіус повороту.
Я знаю свою позицію, і обертання, і ціль.
Я хотів би з’ясувати, чи знаходиться ціль у моєму радіусі повороту з цією швидкістю, чи краще, яка максимальна швидкість, яку я можу подорожувати, для того, щоб зробити поворот до цілі, не постійно кружляючи навколо неї.
Чи існує ефективний спосіб зробити це?
Ось що я зараз думаю: оскільки я знаю, як далеко я подорожую за крок і скільки обертаюсь за крок, я можу зрозуміти, де я буду в наступних двох кадрах. Моє поточне положення - p1, наступне - p2, а потім p3. Я можу взяти перпендикулярні бісектриси (p1, p2) та (p2, p3). Їх точка перетину дасть мені центр кола. Потім я можу перевірити, чи є ціль у тому колі.
Я не впевнений, чи це буде працювати в 3D (я не впевнений, як обчислити сферу за допомогою моїх даних). Це рішення також не дуже допомагає знайти правильну швидкість, з якою рухатись, мені доведеться спробувати кілька разів з різною швидкістю, щоб знайти розумну.
Чи може хтось пролити світло на краще рішення?