1.三維坐標旋轉矩陣的推導過程
任何維的旋轉可以表述為向量與合適尺寸的方陣的乘積。最終一個旋轉等價於在另一個不同坐標系下對點位置的重新表述。 坐標系旋轉角度θ則等同於將目標點圍繞坐標原點反方向旋轉同樣的角度θ。
若以坐標系的三個坐標軸X、Y、Z分別作為旋轉軸,則點實際上只在垂直坐標軸的平面上作二維旋轉。
假設三維坐標系(右手坐標系,拇指即指向X軸的正方向。伸出食指和中指,如右圖所示,食指指向Y軸的正方向,中指所指示的方向即是Z軸的正方向。要確定軸的正旋轉方向,用右手的大拇指指向軸的正方向,彎曲手指。那么手指所指示的方向即是軸的正旋轉方向)中的某一向量,其在直角坐標系中的圖如圖1所示。其中點P在XY平面、XZ平面、YZ平面的投影分別為點M、點Q、點N。
一、繞Z軸逆時針旋轉θ角
繞Z軸旋轉,相當於在XY平面的投影OM繞原點逆時針旋轉,如下圖所示,OM旋轉θ角到OM’。
設旋轉前的坐標為,旋轉后的坐標為
,則點M的坐標為(x,y),點M’的坐標為
。由此可得:
對於和進行三角展開可得:
且有;可得繞Z軸旋轉角的旋轉矩陣為:
由此可得:
二. 繞X軸逆時針旋轉θ角
三. 繞Y軸逆時針旋轉θ角
以上旋轉矩陣都是在右手坐標系下計算的。三維旋轉矩陣就可由以上三個矩陣相乘得到。
這里的旋轉矩陣是需要左乘的,而且以逆時針為正。R是一個旋轉矩陣,X是一個三維列向量[x,y,z]’。
RX就是把X旋轉。
————————————————
版權聲明:本文為CSDN博主「堅持奮斗的李洛克」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lz20120808/java/article/details/50809397