У меня есть следующая функция Lerp
public static headingPitchRollLerp(v1: HeadingPitchRoll, v2: HeadingPitchRoll, t: number): HeadingPitchRoll {
Math.min(Math.max(t, 0), 1);
const result = new Cesium.HeadingPitchRoll();
result.heading = v1.heading + (v2.heading - v1.heading) * t;
result.pitch = v1.pitch + (v2.pitch - v1.pitch) * t;
result.roll = v1.roll + (v2.roll - v1.roll) * t;
return result;
}
Это прекрасно работает, когда вращение не превышает 360 '.
Но если для примера, у меня курс 350'и мой v2 имеет заголовок 10', вместо того, чтобы перейти от 350 'к 10' (только 20 '), мой код перемещается назад и восстанавливает полный оборот (340').
Что я могу изменить насделать вращение всегда наименьшим?