Я пытаюсь вычислить наименьшую разницу между двумя углами.
Это мой текущий код (небольшое изменение того, что я нашел в сети):
float a1 = MathHelper.ToDegrees(Rot);
float a2 = MathHelper.ToDegrees(m_fTargetRot);
float dif = (float)(Math.Abs(a1 - a2);
if (dif > 180)
dif = 360 - dif;
dif = MathHelper.ToRadians(dif);
Работает нормально, за исключением случаев на краю круга. Например, если текущий угол равен 355, а целевой угол равен 5, он рассчитывает разницу -350, а не 10, поскольку 365 градусов равно 5 градусам.
Есть идеи, что я могу сделать, чтобы сделать эту работу?