我想用sin和cos在一架飛機上做一個圓。雖然它與x,y或z軸對齊時效果很好,但我需要更動態的東西。有沒有辦法使用平面法線或其他解決方案將2D矢量變換爲3D矢量?2D矢量到3D矢量
0
A
回答
1
你可能想看看MathOverflow.
0
所以,如果我得到你的問題吧,你想畫在不直接面對軸的一個三維空間中的循環?一種方法是首先使用一個普通的三維向量作爲中心,並以二維方式圍繞它繪製一個圓,所以它仍然面向一個軸(忽略第三個座標)。要獲得旋轉的圓,您需要使用旋轉矩陣並將其應用於生成圓的點。這個數學是:
raw_point = Center + (cos(angle)|sin(angle))
[raw_point.x] [1][0 ][0 ] [cos(YRotation)][0][-sin(YRotation)] [cos(ZRotation)][-sin(ZRotation)][0]
3DPoint = [raw_point.y] * [0][cos(XRotation)][-sin(XRotation)] * [0 ][1][0 ] * [sin(ZRotation)][cos(ZRotation) ][0]
[raw_point.z] [0][sin(XRotation)][cos(XRotation) ] [sin(YRotation)][0][cos(YRotation) ] [0 ][0 ][1]
(支架塊矩陣)
如果你需要的方式(rotation-)矩陣工作看它在維基百科上進一步解釋。 Btw。如果你想在java這樣的代碼語言中使用這種方法,你首先需要創建一個類來包含矩陣的數學。我可以告訴你這些是否必要,因爲我曾經有一個基於維度的問題。
相關問題
- 1. 2D矢量vs 1D矢量
- 2. 2D矢量push_back
- 3. Boost 3D矢量
- 4. 2D矢量場或3D空間中的2D矢量之間的插值
- 5. 乘以一個2D/3D矢量
- 6. 在2D平面上旋轉3D矢量
- 7. 散列2D,3D和nD矢量
- 8. 在2D矢量內排序矢量
- 9. 將1D矢量轉換爲2D矢量
- 10. 從2D矢量中分解矢量
- 11. 3D矢量(X,Y,Z)看矢量
- 12. 插入到2D矢量中
- 13. 2d矩陣到矢量
- 14. 2D矢量檢查
- 15. 求和2D矢量
- 16. 2D矢量乘法
- 17. 將2D矢量2D QVector C++
- 18. 基於另一個2D矢量排序2D矢量
- 19. 分段故障:從給定的2D矢量2D矢量
- 20. 矢量到矢量copys
- 21. 循環幫助:字符串矢量到3D char矢量
- 22. 將1D矢量插入2D矢量而不創建Temp 1D矢量
- 23. push_back矢量矢量
- 24. 矢量矢量C++
- 25. 用glm旋轉2D矢量
- 26. 矢量,點,戰列艦,2D
- 27. C++ 2D矢量排序
- 28. C++輸出2D矢量
- 29. PlayN的2D矢量類?
- 30. 2d矢量初始化
是的,也許是這樣。 – Alex 2009-11-25 05:46:26