我正在開發一款遊戲,我正在編寫一個Entity
基類。由於許多實體的行爲與粒子(2D)類似,我想使用法線而不是以度爲單位的旋轉。然而,因爲我使用的是OpenGL,我需要讓法線的程度旋轉。什麼是從法線轉換爲法度的最快方式,反之亦然。我知道我可以使用三角函數,如atan2
sin
cos
等,但我很確定有一個更快的方法。任何幫助或方向將不勝感激。如何將法線轉換爲度數?
1
A
回答
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
相關問題
- 1. 如何使用平方反比法將光線強度轉換爲線性值
- 2. 將輻射度轉換爲度數
- 3. 將緯度/經度轉換爲整數
- 4. 如何線性語法轉換爲DFA
- 5. 如何將CLLocationManager.magneticHeading轉換爲弧度?
- 6. 如何將UTM轉換爲經緯度?
- 7. 如何將char *轉換爲雙精度?
- 8. 如何將DBNULL轉換爲雙精度?
- 9. 如何將加速度計g力值轉換爲度數
- 10. 如何將度數計算轉換爲弧度? (Kawa to Java)
- 11. 如何將整數轉換爲經度和緯度
- 12. 如何將棕褐色的弧度轉換爲度數
- 13. 如何將坡度轉換爲度數,反之亦然?
- 14. 將法線從worldspace轉換爲viewspace
- 15. 如何將幾何數據字符串轉換爲度數?
- 16. 將一階導數轉換爲度數
- 17. 我無法將數組轉換爲經度和緯度
- 18. 如何將一堆整數轉換/轉換爲一個雙精度數組?
- 19. 如何將單位轉換爲每秒幀數作爲速度?
- 20. 將高度轉換爲字符串X'X「轉換爲數字
- 21. 如何將每週數據轉換爲月度數據?
- 22. 如何將分數轉換爲雙精度或小數?
- 23. 如何將函數轉換爲角度範圍函數
- 24. 如何在Excel中將度數/分鐘轉換爲小數?
- 25. 如何將char數組轉換爲整數或雙精度?
- 26. 我如何將傳感器數據轉換爲度數
- 27. 如何將二次曲線轉換爲線性曲線?
- 28. 將線串轉換爲點數組?
- 29. 將線圖轉換爲barplot
- 30. 將增量對轉換爲度數
法線從表面總是90度。我不知道你在追求什麼... – MichaelHouse 2012-01-05 00:36:07
沒有它的兩個維度。生病做一張圖。 – 2012-01-05 00:36:45
如果我無法弄清楚,我可能只是做一個查找表。 ':P – 2012-01-05 00:45:43