Я пытаюсь вычислить наименьшую разницу между двумя углами.
Это мой текущий код (небольшая вариация того, что я нашел в Интернете):
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 градусам.
Есть идеи, что я могу сделать, чтобы это сработало?