繞任意單位軸旋轉矩陣計算


http://blog.csdn.net/xiajun07061225/article/details/7766838

 

 

在三維變換中,經常要用到旋轉變換,而且很多變換是圍繞任意軸的。那么下面就介紹繞任意單位軸旋轉的兩種方法。

假設要旋轉的角度是a,圍繞的軸是r。

 

方法一:

(1)構建新的基

尋找另外兩條單位長度的坐標軸s、t,他們相互垂直,而且與r垂直。這樣r、s、t組成了一組新基。

具體求s的方法:

找到r中的最小分量,將其設置為0.然后交換其他兩個分量,接着將第一個非零的分量取反(實際上也可以對另外一個非零分量取反)。

要求t,只需求r、s的叉積即可。

詳細計算公式:


 

這樣就確保了r、s、t組成了一組正交單位基。

 

(2)將標准基變換到新的基。

需要通過變換使得r和x軸重合,這樣之后的旋轉就是繞x軸的普通旋轉。另外的兩個軸也相互重合。

變換矩陣由上面的r、s、t向量組成:


 

(3)旋轉

因為r與x重合,在新的基中我們只需圍繞x軸進行旋轉(正常情況下的旋轉)即可。

假設旋轉矩陣是Rx(a)。

 

(4)變換回到原來的標准基。

變換矩陣應該是M的逆矩陣,由於M是正交的,因此其逆矩陣就是其轉置矩陣。

 

因此,最終的繞任意單位軸的變換矩陣是:


 

方法二

根據Goldman給出的公式進行計算,這個公式有點復雜:


 

具體推導過程可以參考:

http://www.cppblog.com/lovedday/archive/2008/01/12/41031.html

http://www.cnblogs.com/cg_ghost/archive/2012/04/27/2473347.html

 

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM