我試圖計算兩個角度之間的最小差異。兩個角度之間的最小差異?
這是我當前的代碼(的東西,我在網上找到一個微小的變化):
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'的熱愛:( –
偉大的呼叫,@安德魯我沒有任何知識就來到這裏MathHelper,但WrapAngle似乎是寫作解決方案,希望你已經發布了一個解決方案,但是因爲你沒有,我會更新我的答案 – Prestaul