我正在尝试计算两个角度之间的最小差异。
这是我的当前代码(稍微变化了一下从网上找到的东西):
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度。
有什么想法可以让这个工作吗?
MathHelper.WrapAngle
的爱 :( - Andrew Russell