2012-01-05 45 views
1

我正在開發一款遊戲,我正在編寫一個Entity基類。由於許多實體的行爲與粒子(2D)類似,我想使用法線而不是以度爲單位的旋轉。然而,因爲我使用的是OpenGL,我需要讓法線的程度旋轉。什麼是從法線轉換爲法度的最快方式,反之亦然。我知道我可以使用三角函數,如atan2sincos等,但我很確定有一個更快的方法。任何幫助或方向將不勝感激。如何將法線轉換爲度數?

enter image description here

+0

法線從表面總是90度。我不知道你在追求什麼... – MichaelHouse 2012-01-05 00:36:07

+0

沒有它的兩個維度。生病做一張圖。 – 2012-01-05 00:36:45

+0

如果我無法弄清楚,我可能只是做一個查找表。 ':P – 2012-01-05 00:45:43

回答

8

如果你受限於兩個方面和你想要的方向向量(X,Y)與x軸轉換爲度,然後atan2(y, x)幾乎肯定會是最快方法,除非你將x和y的可能值限制在一些相當平凡的情況下。當然,要從y軸獲得度數,只需使用atan2(x, y)即可。這個角度將以弧度表示。乘以180/pi轉換爲度數。這應該需要微不足道的時間。

你正在繪製的圖表顯示atan2(x, y) * 180/Math.PI會給你你想要的結果。

不要關心速度,除非您已經對代碼進行了剖析並確定此計算存在瓶頸(這不太可能)。

+0

Upvoted for the final段,很多人犯了這個錯誤。 – SHiRKiT 2012-01-05 01:13:45