三維旋轉矩陣 左乘和右乘分析
突然發現自己被旋轉矩陣的左乘右乘給搞糊塗了,查了不少部落格還是有點暈,這裡自己總結一下:
本文所討論均是基於右手座標系,旋轉也是以正方向旋轉,如圖所示:
左乘: 座標系不動,點動,則左乘。【若繞靜座標系(世界座標系)旋轉,則左乘,也是變換矩陣乘座標矩陣;】
右乘: 點不動,座標系動,則右乘。【若是繞動座標系旋轉(自身建立一個座標系),則右乘,也就是座標矩陣乘變換矩陣】
由於三維旋轉可以分解成分別繞三個軸旋轉,然後其實就是二維旋轉了。為了方便,這裡就使用二維旋轉舉例。
比如繞z軸旋轉 theta 角度;
左乘分析如圖所示:
而右乘分析:
則是旋轉座標系;點逆時針旋轉了theta角,其實也就是相當於座標軸也逆時針旋轉theta角。如圖所示:
設點原座標為
[
x
,
y
,
z
]
[x,y,z]
[x,y,z],旋轉後的座標為
[
x
′
,
y
′
,
z
′
]
[x',y',z']
[x′,y′,z′], 設左乘旋轉矩陣為
R
l
e
f
t
R_{left}
Rleft,右乘旋轉矩陣為
R
r
i
g
h
t
R_{right}
Rright,
則:
[
x
′
y
′
z
′
]
=
R
l
e
f
t
∗
[
x
y
z
]
\begin{bmatrix}x'\\y'\\z'\end{bmatrix}={R_{left}}*\begin{bmatrix}x\\y\\z\end{bmatrix}
⎣⎡x′y′z′⎦⎤=Rleft∗⎣⎡xyz⎦⎤
[
x
′
y
′
z
′
]
=
[
x
y
z
]
∗
R
r
i
g
h
t
\begin{bmatrix}x'&y'&z'\end{bmatrix}=\begin{bmatrix}x&y&z\end{bmatrix}*{R_{right}}
[x′y′z′]=[xyz]∗Rright
觀察上面兩圖計算出來的旋轉矩陣還可以得出結論,
R
l
e
f
t
∗
R
r
i
g
h
t
=
I
R_{left}*{R_{right}} = I
Rleft∗Rright=I,這意味這這兩個矩陣是互為逆。
另外,
R
l
e
f
t
(
θ
)
=
R
r
i
g
h
t
(
−
θ
)
R_{left}(\theta) = {R_{right}} (-\theta)
Rleft(θ)=Rright(−θ) 。
【可以說,如果一個旋轉矩陣左乘表示逆時針旋轉 theta 角,那麼將此矩陣右乘的話則表示順時針旋轉 theta 角】
左乘與右乘是可以變換的。也即是說:
R l e f t 3 ( θ ) ∗ R l e f t 2 ( θ ) ∗ R l e f t 1 ( θ ) ∗ [ x y z ] = R r i g h t 3 ( − θ ) ∗ R r i g h t 2 ( − θ ) ∗ R r i g h t 1 ( − θ ) ∗ [ x y z ] {R_{left_3}}(\theta)*{R_{left_2}}(\theta)*{R_{left_1}}(\theta)*\begin{bmatrix}x\\y\\z\end{bmatrix} = {R_{right_3}}(-\theta)*{R_{right_2}}(-\theta)*{R_{right_1}}(-\theta)*\begin{bmatrix}x\\y\\z\end{bmatrix} Rleft3(θ)∗Rleft2(θ)∗Rleft1(θ)∗⎣⎡xyz⎦⎤=Rright3(−θ)∗Rright2(−θ)∗Rright1(−θ)∗⎣⎡xyz⎦⎤
不過建議只是用一種方法來計算旋轉矩陣,以免混淆。
【如有錯誤,歡迎各位批評指正。】
參考部落格:https://blog.csdn.net/csxiaoshui/article/details/65446125
相關文章
- 三維空間變換中旋轉矩陣左乘與右乘的區別矩陣
- 三維旋轉矩陣推導矩陣
- 二維旋轉矩陣推導矩陣
- 三維座標系旋轉——旋轉矩陣到旋轉角之間的換算矩陣
- 三維空間座標系變換-旋轉矩陣矩陣
- 三維空間中物體兩次旋轉之間的連續旋轉矩陣計算矩陣
- NYOJ 1409 快速計算【矩陣連乘】矩陣
- 尤拉角和旋轉矩陣之間的轉換矩陣
- THREE 矩陣優先原則和平移旋轉矩陣矩陣
- 三維旋轉矩陣的推導過程(以右手座標系為例)矩陣
- 空間旋轉矩陣怎麼表示矩陣
- 【矩陣求導】關於點乘 (哈達瑪積)的矩陣求導矩陣求導點乘
- 矩陣連乘(動態規劃演算法)矩陣動態規劃演算法
- 矩陣連乘問題 Python 動態規劃矩陣Python動態規劃
- LeetCodeHot100 73. 矩陣置零 54. 螺旋矩陣 48. 旋轉影像 240. 搜尋二維矩陣 IILeetCode矩陣
- 圖形學 旋轉與投影矩陣-3矩陣
- 圖形學 旋轉與投影矩陣—2矩陣
- 3D旋轉矩陣的推導3D矩陣
- 圖形學 旋轉與投影矩陣—1矩陣
- 大規模 Transformer 模型 8 位元矩陣乘簡介ORM模型矩陣
- 旋轉矩陣與尤拉角的相互轉換矩陣
- 向量點乘為降維,叉乘為升維點乘
- 卷積運算元的矩陣向量乘積表示&一維離散降質模型卷積矩陣模型
- 矩陣類及其常規運算(加、減、乘、轉置、求逆、行列式、代數餘子式、伴隨矩陣)矩陣
- 矩陣旋轉-Eigen應用(QTCreator編輯器)矩陣QT
- 三維空間的旋轉
- 動態規劃_備忘錄法_矩陣鏈乘問題動態規劃矩陣
- 左兒子和右兄弟
- 240. 搜尋二維矩陣 II 和74. 搜尋二維矩陣矩陣
- 單像空間後方交會計算旋轉矩陣矩陣
- 資料結構之陣列和矩陣--矩陣&不規則二維陣列資料結構陣列矩陣
- 第四章:多維陣列和矩陣 ------------- 4.8 子矩陣的最大累加和陣列矩陣
- Unity開發中常用的基礎3D數學(向量,點乘,叉乘,矩陣,四元數,尤拉角)Unity3D點乘矩陣
- 左值、左值引用、右值、右值引用
- C++ 左值和右值C++
- 【DP】乘積最大子陣列陣列
- C++左值右值完美轉發轉移C++
- 矩陣轉置矩陣