2012-12-04 42 views
1

我試圖做一個分佈式遞歸射線示蹤劑。我有一個Vector3d對象(表示完美/理想的反射),我想在它上面創建一個隨機變換,這樣我就可以得到一個與原始矢量相差一個角度的新矢量。創建一個Matrix3d矩陣,將一個vector3d變換爲一個圓錐體

排序是這樣的: enter image description here

我認爲正確的做法是,以某種方式投射矢量到X軸,由隨機角度沿y軸旋轉,然後沿x軸旋轉,做反向投影。我不確定這些轉換的矩陣是什麼。

(基本上,我要創建的相同的矩陣OpenGL的glRotated(),而不巨大式中手動輸入該矩陣的每個元素)

謝謝!

回答

0

偶然發現了Rodrigues' rotation formula,這可能提供了一種更簡單的矩陣計算方法。維基百科表示,它消除了矩陣指數的需求,這聽起來令人印象深刻。

其他三種方法是here。使用四元數的那個似乎具有最少符號的優點(?)。