У меня есть юнит в игре, который указывает в определенном направлении; когда он поворачивает в другом направлении, он должен сделать самый короткий поворот. Схема начинается под определенным углом и требует заданного угла для линейного интерполяции в направлении.
Например, при наклоне от 10 до 350 градусов целевой угол должен быть равен -10. В обратном направлении от 350 до 10 следует рассчитать конечный конец 370 градусов.
Какой алгоритм может рассчитать эти требуемые конечные значения?
РЕДАКТИРОВАТЬ :: Кажется, есть некоторая путаница в том, что мне нужно
Я использую линейную интерполяцию для вычисления углов во времени. Итак, если я хочу получить от 10 до 20, тогда конечное значение должно быть 20, тогда я интерполирую от 10 до 20 и поверну направо. Однако, аналогично, если я хочу перейти от 20 до 10, тогда интерполяция от 20 до 10 будет идти против часовой стрелки, это тоже хорошо. Проблема в том, что когда поворот превышает 180 в направлении по часовой стрелке, чтобы перейти от 270 до 80 (210 градусов), нужно повернуть по часовой стрелке, прямая интерполяция от 270 до 80 будет идти против часовой стрелки, мне нужно интерполировать от 270 до 420 (360 +80), который пойдет против часовой стрелки.