Дана декартова система координат, исходная позиция A (X / Y) и промежуточная позиция B (X / Y). Я хочу перейти от A к B. Однако я могу двигаться только по восьми направлениям N, NE, E, SE, S, SW, W, NW.
Я знаю, что могу вычислить «лучшее» из этих направлений, чтобы взять из текущей позиции A через точечное произведение с единичными векторами оси (восемь направлений), где наибольшим точечным произведением является направление, по которому нужно взять , Но этот подход приводит к некоторому «колебанию» между двумя направлениями, если A находится точно между этими двумя.
Итак, я сейчас ищу алгоритм, который решает эту проблему - от A до B только с одним или макс. два направления для использования. Конечно, сейчас я игнорирую любые препятствия, так что теоретически я всегда могу добраться от А до Б с максимум двумя разными направлениями. Вероятно, я мог бы решить эту проблему с помощью множества операторов if, но я бы предпочел более элегантное решение ...
Надеюсь, это было несколько понятно:)
Заранее спасибо за любые идеи!
С уважением, Матиас