三維座標系的旋轉矩陣

small_Plant發表於2017-05-31


為了方便自己記憶,記錄一下三維座標旋轉矩陣的推導過程。


    座標的旋轉變換在很多地方都會用到,比如機器視覺中的攝像機標定、影像處理中的影像旋轉、遊戲程式設計等。

    任何維的旋轉可以表述為向量與合適尺寸的方陣的乘積。最終一個旋轉等價於在另一個不同座標系下對點位置的重新表述。座標系旋轉角度θ則等同於將目標點圍繞座標原點反方向旋轉同樣的角度θ。

    若以座標系的三個座標軸X、Y、Z分別作為旋轉軸,則點實際上只在垂直座標軸的平面上作二維旋轉。

   假設三維座標系中的某一向量 ,其在直角座標系中的圖如圖1所示。其中點P在XY平面、XZ平面、YZ平面的投影分別為點M、點P、點N。
 
                                              
                                                                 圖1 直角座標系XYZ

   一、 繞Z軸旋轉θ角
    繞Z軸旋轉,相當於 在XY平面的投影OM繞原點旋轉,如下圖所示,OM旋轉θ角到OM'。
                                                 
                                                            
                                                                   圖2 向量繞Z軸旋轉示意圖

   設旋轉前的座標為 ,旋轉後的座標為 ,則點M的座標為 ,點M'的座標為 。由此可得:
                                                       
    對於 進行三角展開可得:
                                                      
    且有 ;可得繞Z軸旋轉 角的旋轉矩陣為:
                         
                                                                   

   二、 繞X軸旋旋轉θ角
   繞X軸旋轉,相當於 在YZ平面的投影ON繞原點旋轉,如下圖所示,ON旋轉θ角到ON'。
                                                             
                                                                   圖3 向量繞X軸旋轉示意圖

   設旋轉前的座標為 ,旋轉後的座標為 ,則點N的座標為 ,點N'的座標為 。由此可得:

                                                   
    對於 進行三角展開可得:
                                                
    且有 ;可得繞X軸旋轉 角的旋轉矩陣為:
                         
                                                         

    三、 繞Y軸旋旋轉θ角
    繞Y軸旋轉,相當於 在XZ平面的投影OQ繞原點旋轉,如下圖所示,OQ旋轉θ角到OQ'。
                                                 
                                                            
                                                                   圖4 向量繞Y軸旋轉示意圖

   設旋轉前的座標為 ,旋轉後的座標為 ,則點Q的座標為 ,點Q'的座標為 。由此可得:

                                               
    對於 進行三角展開可得:
                                             
    且有 ;可得繞Y軸旋轉 角的旋轉矩陣為:
                         
                                           



    四、繞X、Y、Z軸旋轉的旋轉矩陣分別為:
 
                

    五、總結
    
    囉囉嗦嗦終於打完所有的公式了,其實三個軸會推導其中一個軸的旋轉矩陣的話,另外兩個軸也類似地可以很容易推匯出來。這裡給出所有的推導過程只是為了我自己記憶的方便。當然也可以不旋轉向量,而使用旋轉座標系的方法推導,兩種方法是等價的。

    公式的輸入我使用了這篇部落格 http://blog.csdn.net/linraise/article/details/11712937給出的方法。還有一個小技巧,就是可以雙擊公式,在最上面的工具欄“圖片”選項裡直接修改公式的內容。

參考:
1、《學習OpenCV》
    

為了方便自己記憶,記錄一下三維座標旋轉矩陣的推導過程。


    座標的旋轉變換在很多地方都會用到,比如機器視覺中的攝像機標定、影像處理中的影像旋轉、遊戲程式設計等。

    任何維的旋轉可以表述為向量與合適尺寸的方陣的乘積。最終一個旋轉等價於在另一個不同座標系下對點位置的重新表述。座標系旋轉角度θ則等同於將目標點圍繞座標原點反方向旋轉同樣的角度θ。

    若以座標系的三個座標軸X、Y、Z分別作為旋轉軸,則點實際上只在垂直座標軸的平面上作二維旋轉。

   假設三維座標系中的某一向量 ,其在直角座標系中的圖如圖1所示。其中點P在XY平面、XZ平面、YZ平面的投影分別為點M、點P、點N。
 
                                              
                                                                 圖1 直角座標系XYZ

   一、 繞Z軸旋轉θ角
    繞Z軸旋轉,相當於 在XY平面的投影OM繞原點旋轉,如下圖所示,OM旋轉θ角到OM'。
                                                 
                                                            
                                                                   圖2 向量繞Z軸旋轉示意圖

   設旋轉前的座標為 ,旋轉後的座標為 ,則點M的座標為 ,點M'的座標為 。由此可得:
                                                       
    對於 進行三角展開可得:
                                                      
    且有 ;可得繞Z軸旋轉 角的旋轉矩陣為:
                         
                                                                   

   二、 繞X軸旋旋轉θ角
   繞X軸旋轉,相當於 在YZ平面的投影ON繞原點旋轉,如下圖所示,ON旋轉θ角到ON'。
                                                             
                                                                   圖3 向量繞X軸旋轉示意圖

   設旋轉前的座標為 ,旋轉後的座標為 ,則點N的座標為 ,點N'的座標為 。由此可得:

                                                   
    對於 進行三角展開可得:
                                                
    且有 ;可得繞X軸旋轉 角的旋轉矩陣為:
                         
                                                         

    三、 繞Y軸旋旋轉θ角
    繞Y軸旋轉,相當於 在XZ平面的投影OQ繞原點旋轉,如下圖所示,OQ旋轉θ角到OQ'。
                                                 
                                                            
                                                                   圖4 向量繞Y軸旋轉示意圖

   設旋轉前的座標為 ,旋轉後的座標為 ,則點Q的座標為 ,點Q'的座標為 。由此可得:

                                               
    對於 進行三角展開可得:
                                             
    且有 ;可得繞Y軸旋轉 角的旋轉矩陣為:
                         
                                           



    四、繞X、Y、Z軸旋轉的旋轉矩陣分別為:
 
                

    五、總結
    
    囉囉嗦嗦終於打完所有的公式了,其實三個軸會推導其中一個軸的旋轉矩陣的話,另外兩個軸也類似地可以很容易推匯出來。這裡給出所有的推導過程只是為了我自己記憶的方便。當然也可以不旋轉向量,而使用旋轉座標系的方法推導,兩種方法是等價的。

    公式的輸入我使用了這篇部落格 http://blog.csdn.net/linraise/article/details/11712937給出的方法。還有一個小技巧,就是可以雙擊公式,在最上面的工具欄“圖片”選項裡直接修改公式的內容。

參考:
1、《學習OpenCV》
    

相關文章