目录
三维旋转矩阵的应用比较广泛,在姿态控制等领域具有重要的应用价值。网上有不少讲解三维矩阵旋转的文章,但大多数文章只是机械地描述旋转矩阵的形式和坐标的转换关系,记忆点比较多,而且过于强调不同情况下旋转矩阵的差异,容易引发记忆混乱。因此笔者根据自身的试验和堆旋转矩阵的理解,重新整理成了这篇文章。本文整理了物体绕固定坐标轴旋转、物体绕自身坐标系旋转、坐标系旋转和物体绕任意轴旋转等多种情况,力求全面地讲解各种不同情况下的旋转矩阵计算。
众所周知,三维旋转矩阵问题分为物体旋转和坐标系旋转两者,坐标系旋转又可以分为物体随坐标系转动和物体不随转动两种情况。为了方便理解,我们还是从最简单的情况说起,并逐步推导复杂的情况。
第一部分 基础概念
形如下图所示的三维坐标系,我们称之为符合右手定则的坐标系:
所谓“符合右手定则”,是指手四根手指由X转向Y时,大拇指方向与Z轴正方向一致。
对于该坐标系内的任意一点,用列向量的方式描述为:
P
0
=
[
x
0
y
0
z
0
]
P_{0}=\begin{bmatrix}x_0\\y_0\\z_0\end{bmatrix}
P0=
x0y0z0
首先分析单轴运动的情况,也就是物体分别绕坐标轴XYZ旋转。在旋转前,首先要知道向哪个方向旋转为向正方向旋转,根据右手定则:当右手大拇指与某一条坐标轴重合时,四根手指弯曲的方向就是旋转的正方向。
同时在描述角速度的方向时,也可以用到右手定则,即大拇指指向的方向,就是该旋转方向的角速度。比如位于XOY平面上的某点,从X轴向Y轴方向旋转,那么他的角速度方向就是Z轴的方向。
第二部分:物体绕单轴旋转的旋转矩阵推导
让我们从最简单的情况——单轴旋转说起,为了简化分析,首先分析位于三个基准正交平面上的物体是怎么旋转的。
对于绕X轴旋转,其旋转平面为ZOY平面,如下图所示,其旋转方向为由Y轴向Z轴旋转的方向
该平面内的物体沿正方向旋转的示意图如下图
对于绕Y轴旋转,其旋转平面为ZOX平面,如下图所示,旋转方向为由Z轴指向X轴
该平面内的物体沿正方向旋转的示意图如下图所示
对于绕Z轴旋转,旋转平面为XOY平面,旋转方向为X轴转向Y轴
该平面内物体沿正方向旋转的示意图如下图所示
上图中初始位置和旋转角度非常明确,转换为极坐标系求解可以很容易的求出物体的旋转矩阵:
对于绕X轴向旋转的情况
利用极坐标系进行分析,显然有
y
1
=
r
c
o
s
(
γ
+
γ
0
)
=
r
(
c
o
s
γ
c
o
s
γ
0
−
s
i
n
γ
s
i
n
γ
0
)
=
r
c
o
s
γ
0
c
o
s
γ
−
r
s
i
n
γ
0
s
i
n
γ
=
y
0
c
o
s
γ
−
z
0
s
i
n
γ
y_1=rcos(\gamma+\gamma_0) \\=r(cos\gamma cos\gamma_0 - sin\gamma sin\gamma_0) \\=rcos\gamma_0 cos\gamma - rsin\gamma_0 sin\gamma \\=y_0cos\gamma-z_0sin\gamma
y1=rcos(γ+γ0)=r(cosγcosγ0−sinγsinγ0)=rcosγ0cosγ−rsinγ0sinγ=y0cosγ−z0sinγ
z
1
=
r
s
i
n
(
γ
+
γ
0
)
=
r
(
s
i
n
γ
c
o
s
γ
0
+
c
o
s
γ
s
i
n
γ
0
)
=
y
0
s
i
n
γ
+
z
0
z_1=rsin(\gamma+\gamma_0) \\=r(sin\gamma cos\gamma_0+cos\gamma sin\gamma_0) \\=y_0sin\gamma+z_0
z1=rsin(γ+γ0)=r(sinγcosγ0+cosγsinγ0)=y0sinγ+z0
写成矩阵的模式则有
[
y
1
z
1
]
=
[
c
o
s
γ
−
s
i
n
γ
s
i
n
γ
c
o
s
γ
]
[
y
0
x
0
]
\begin{bmatrix}y_1\\z_1\end{bmatrix}=\begin{bmatrix}cos\gamma&-sin\gamma\\ sin\gamma&cos\gamma\end{bmatrix}\begin{bmatrix}y_0\\x_0\end{bmatrix}
[y1z1]=[cosγsinγ−sinγcosγ][y0x0]
我们将其扩充为三维,显然绕X轴旋转时X轴的坐标是不变的,于是有
[
x
1
y
1
z
1
]
=
[
1
0
0
0
c
o
s
γ
−
s
i
n
γ
0
s
i
n
γ
c
o
s
γ
]
[
x
0
y
0
z
0
]
\begin{bmatrix}x_1\\y_1\\z_1\end{bmatrix}=\begin{bmatrix}1&0&0\\0&cos\gamma&-sin\gamma\\0&sin\gamma&cos\gamma\end{bmatrix}\begin{bmatrix}x_0\\y_0\\z_0\end{bmatrix}
x1y1z1
=
1000cosγsinγ0−sinγcosγ
x0y0z0
绕Y轴和绕Z轴的方式同理可得,但本文为了说明得更详细些,也把他们的推导过程写上
对于绕Y轴旋转的情况,显然有
x
1
=
r
s
i
n
(
γ
+
γ
0
)
=
r
(
s
i
n
γ
c
o
s
γ
0
+
c
o
s
γ
s
i
n
γ
0
)
=
r
c
o
s
γ
0
s
i
n
γ
+
r
s
i
n
γ
0
c
o
s
γ
=
x
0
c
o
s
γ
+
z
0
s
i
n
γ
x_1=rsin(\gamma+\gamma_0) \\=r(sin\gamma cos\gamma_0+cos\gamma sin\gamma_0) \\=rcos\gamma_0sin\gamma + rsin\gamma_0cos\gamma \\=x_0cos\gamma+z_0sin\gamma
x1=rsin(γ+γ0)=r(sinγcosγ0+cosγsinγ0)=rcosγ0sinγ+rsinγ0cosγ=x0cosγ+z0sinγ
z
1
=
r
c
o
s
(
γ
+
γ
0
)
=
r
(
c
o
s
γ
cos
γ
0
−
s
i
n
γ
sin
γ
0
)
=
r
c
o
s
γ
0
cos
γ
−
r
s
i
n
γ
0
sin
γ
=
−
x
0
s
i
n
γ
+
z
0
c
o
s
γ
z_1=rcos(\gamma+\gamma_0) \\=r(cos\gamma\cos\gamma_0-sin\gamma\sin\gamma_0) \\=rcos\gamma_0\cos\gamma-rsin\gamma_0\sin\gamma \\=-x_0sin\gamma+z_0cos\gamma
z1=rcos(γ+γ0)=r(cosγcosγ0−sinγsinγ0)=rcosγ0cosγ−rsinγ0sinγ=−x0sinγ+z0cosγ
扩充到三维并写成向量形式显然有:
[
x
1
y
1
z
1
]
=
[
c
o
s
γ
0
s
i
n
γ
0
1
0
−
s
i
n
γ
0
c
o
s
γ
]
[
x
0
y
0
z
0
]
\begin{bmatrix}x_1\\y_1\\z_1\end{bmatrix}=\begin{bmatrix}cos\gamma&0&sin\gamma\\0&1&0\\-sin\gamma&0&cos\gamma\end{bmatrix}\begin{bmatrix}x_0\\y_0\\z_0\end{bmatrix}
x1y1z1
=
cosγ0−sinγ010sinγ0cosγ
x0y0z0
对于绕Z轴旋转的情况,显然有
x
1
=
r
c
o
s
(
γ
+
γ
0
)
=
r
(
c
o
s
γ
c
o
s
γ
0
−
s
i
n
γ
s
i
n
γ
0
)
=
r
c
o
s
γ
0
c
o
s
γ
−
r
s
i
n
γ
0
s
i
n
γ
=
x
0
c
o
s
γ
−
y
0
s
i
n
γ
x_1=rcos(\gamma+\gamma_0) \\=r(cos\gamma cos\gamma_0-sin\gamma sin\gamma_0) \\=rcos\gamma_0 cos\gamma-rsin\gamma_0 sin\gamma \\=x_0cos\gamma-y_0sin\gamma
x1=rcos(γ+γ0)=r(cosγcosγ0−sinγsinγ0)=rcosγ0cosγ−rsinγ0sinγ=x0cosγ−y0sinγ
y
1
=
r
s
i
n
(
γ
+
γ
0
)
=
r
(
s
i
n
γ
c
o
s
γ
0
+
c
o
s
γ
s
i
n
γ
0
)
=
r
c
o
s
γ
0
s
i
n
γ
+
r
sin
γ
0
c
o
s
γ
y_1=rsin(\gamma+\gamma_0) \\=r(sin\gamma cos\gamma_0+cos\gamma sin\gamma_0) \\=rcos\gamma_0 sin\gamma+r\sin\gamma_0cos\gamma
y1=rsin(γ+γ0)=r(sinγcosγ0+cosγsinγ0)=rcosγ0sinγ+rsinγ0cosγ
扩充到三维并写成向量形式显然有:
[
x
1
y
1
z
1
]
=
[
c
o
s
γ
−
s
i
n
γ
0
s
i
n
γ
c
o
s
γ
0
0
0
1
]
[
x
0
y
0
z
0
]
\begin{bmatrix}x_1\\y_1\\z_1\end{bmatrix}=\begin{bmatrix}cos\gamma&-sin\gamma&0\\sin\gamma&cos\gamma&0\\0&0&1\end{bmatrix}\begin{bmatrix}x_0\\y_0\\z_0\end{bmatrix}
x1y1z1
=
cosγsinγ0−sinγcosγ0001
x0y0z0
综上:坐标系内一物体(向量坐标)绕单一坐标轴旋转的变换矩阵为
R
X
=
[
1
0
0
0
c
o
s
α
−
s
i
n
α
0
s
i
n
α
c
o
s
α
]
R_X=\begin{bmatrix}1&0&0\\0&cos\alpha&-sin\alpha\\0&sin\alpha&cos\alpha\end{bmatrix}
RX=
1000cosαsinα0−sinαcosα
R Y = [ c o s β 0 s i n β 0 1 0 − s i n β 0 c o s β ] R_Y=\begin{bmatrix}cos\beta&0&sin\beta\\0&1&0\\-sin\beta&0&cos\beta\end{bmatrix} RY= cosβ0−sinβ010sinβ0cosβ
R
Z
=
[
c
o
s
γ
−
s
i
n
γ
0
s
i
n
γ
c
o
s
γ
0
0
0
1
]
R_Z=\begin{bmatrix}cos\gamma&-sin\gamma&0\\sin\gamma&cos\gamma&0\\0&0&1\end{bmatrix}
RZ=
cosγsinγ0−sinγcosγ0001
这样我们就完成了第一步,证明了单轴情况下,物体绕坐标轴旋转时坐标变换的规律
在分析坐标系旋转之前,我们先来讨论一下旋转矩阵的性质,这样有助于加深对旋转矩阵的理解。
对于绕X轴运动的旋转矩阵,可其为关于
α
\alpha
α的函数,则有
R
X
(
α
)
=
[
1
0
0
0
c
o
s
α
−
s
i
n
α
0
s
i
n
α
c
o
s
α
]
R_X(\alpha)=\begin{bmatrix}1&0&0\\0&cos\alpha&-sin\alpha\\0&sin\alpha&cos\alpha\end{bmatrix}
RX(α)=
1000cosαsinα0−sinαcosα
显然有
R
X
(
α
)
T
=
R
X
(
α
)
−
1
=
R
X
(
−
α
)
R_X(\alpha)^T=R_X(\alpha)^{-1}=R_X(-\alpha)
RX(α)T=RX(α)−1=RX(−α)
即
R
X
R_X
RX的转置矩阵即是
R
X
R_X
RX的逆矩阵,同时,也是绕相反方向运动的旋转矩阵
R
X
(
−
α
)
R_X(-\alpha)
RX(−α)
也就是
R
X
(
α
)
R_X(\alpha)
RX(α)的逆矩阵相当于将物体绕X轴反方向旋转
α
\alpha
α度的旋转矩阵
从物理很好理解这个关系,所谓逆矩阵,就是满足
P
=
R
X
(
α
)
−
1
R
X
(
α
)
P
P=R_X(\alpha)^{-1}R_X(\alpha)P
P=RX(α)−1RX(α)P
的矩阵,那自然就是把转过去的物体再按照相反的反向转回来。
第三部分 坐标系单轴旋转的坐标转换关系推导
现在我们分析坐标系旋转的情况
坐标系旋转其实分为两种情况,第一种是坐标系旋转但物体不动,第二种是物体随坐标系旋转。
网上很多教程由于缺乏坐标系旋转情况下的坐标值的清晰定义,导致对同一个问题,每篇文章的公式都不一样,容易造成混乱。为了方便讨论,本文将点的定义进行了统一,旋转前坐标系下的点统一为
(
x
,
y
)
(x,y)
(x,y),旋转后坐标系下的点为
(
x
′
,
y
′
)
(x^\prime,y^\prime)
(x′,y′)。而在统一坐标系下的不同点,我们则用下标区分,如
(
x
0
,
y
0
)
(x_0,y_0)
(x0,y0),
(
x
1
,
y
1
)
(x_1,y_1)
(x1,y1)表示旋转前坐标系下的两点,
(
x
0
′
,
y
0
′
)
(x_0^\prime,y_0^\prime)
(x0′,y0′),
(
x
1
′
,
y
1
′
)
(x_{1}^{\prime},y_1^{\prime})
(x1′,y1′)表示旋转后坐标系下的两点
物体随坐标系旋转
假设原始坐标系为
X
O
Y
XOY
XOY,内有一点
(
x
0
,
y
0
)
(x_0,y_0)
(x0,y0),原始坐标系旋转到
X
′
O
Y
′
X^\prime O Y^\prime
X′OY′位置,该点随坐标系一起旋转,因此在
X
′
O
Y
′
X^\prime O Y^\prime
X′OY′的坐标为
(
x
0
′
,
y
0
′
)
(x_0^\prime,y_0^\prime)
(x0′,y0′),其数值与
(
x
0
,
y
0
)
(x_0,y_0)
(x0,y0)相等,那么该点在原始坐标系下的新位置,
(
x
1
,
y
1
)
(x_1,y_1)
(x1,y1)与该点在新坐标系下的位置
(
x
0
′
,
y
0
′
)
(x_0^\prime,y_0^\prime)
(x0′,y0′)之间关系为
[
x
1
y
1
z
1
]
=
[
c
o
s
γ
sin
γ
0
s
i
n
γ
c
o
s
γ
0
0
0
1
]
[
x
0
′
y
0
′
z
0
′
]
\begin{bmatrix}x_1\\y_1\\z_1\end{bmatrix}=\begin{bmatrix}cos\gamma&\sin\gamma&0\\sin\gamma&cos\gamma&0\\0&0&1\end{bmatrix}\begin{bmatrix}x_0^\prime\\y_0^\prime\\z_0^\prime\end{bmatrix}
x1y1z1
=
cosγsinγ0sinγcosγ0001
x0′y0′z0′
即
P
Z
=
R
Z
P
Z
′
P_Z=R_ZP_Z^\prime
PZ=RZPZ′
这里要注意,
(
x
0
,
y
0
)
(x_0,y_0)
(x0,y0)与
(
x
0
′
,
y
0
′
)
(x_0^\prime,y_0^\prime)
(x0′,y0′)在数值上相等。
坐标系旋转,物体不转
注意上面的向量
(
x
2
,
y
2
)
(x_2,y_2)
(x2,y2)和
(
x
2
′
,
y
2
′
)
(x_2^\prime,y_2^\prime)
(x2′,y2′),且在数值上
x
2
=
x
2
′
,
y
2
=
y
2
′
x_2=x_2^\prime,y_2=y_2^\prime
x2=x2′,y2=y2′,则
X
O
Y
XOY
XOY坐标系下的点
(
x
0
,
y
0
)
(x_0,y_0)
(x0,y0)在经过旋转的
X
′
O
Y
′
X^\prime O Y^\prime
X′OY′坐标系下,坐标点为
(
x
2
′
,
y
2
′
)
(x_2^\prime,y_2^\prime)
(x2′,y2′),数值上与
(
x
2
,
y
2
)
(x_2,y_2)
(x2,y2)相同,则显然有
[
x
0
y
0
z
0
]
=
[
c
o
s
γ
−
s
i
n
γ
0
s
i
n
γ
c
o
s
γ
0
0
0
1
]
[
x
2
′
y
2
′
z
2
′
]
\begin{bmatrix}x_0\\y_0\\z_0\end{bmatrix}=\begin{bmatrix}cos\gamma&-sin\gamma&0\\sin\gamma&cos\gamma&0\\0&0&1\end{bmatrix}\begin{bmatrix}x_2^\prime\\y_2^\prime\\z_2^\prime\end{bmatrix}
x0y0z0
=
cosγsinγ0−sinγcosγ0001
x2′y2′z2′
即
P
Z
=
R
Z
P
Z
′
P_Z=R_ZP_Z^\prime
PZ=RZPZ′
绕X轴与Y轴的旋转矩阵原理绕Z轴相同,这里仅给出结论,推导时要注意角度的正方向要符合右手定则,避免符号出现错误。
R
X
=
[
1
0
0
0
c
o
s
α
−
s
i
n
α
0
s
i
n
α
c
o
s
α
]
R_X=\begin{bmatrix}1&0&0\\0&cos\alpha&-sin\alpha\\0&sin\alpha&cos\alpha\end{bmatrix}
RX=
1000cosαsinα0−sinαcosα
R Y = [ c o s β 0 s i n β 0 1 0 − s i n β 0 c o s β ] R_Y=\begin{bmatrix}cos\beta&0&sin\beta\\0&1&0\\-sin\beta&0&cos\beta\end{bmatrix} RY= cosβ0−sinβ010sinβ0cosβ
R
Z
=
[
c
o
s
γ
−
s
i
n
γ
0
s
i
n
γ
c
o
s
γ
0
0
0
1
]
R_Z=\begin{bmatrix}cos\gamma&-sin\gamma&0\\sin\gamma&cos\gamma&0\\0&0&1\end{bmatrix}
RZ=
cosγsinγ0−sinγcosγ0001
当坐标系旋转时
P
X
=
R
X
P
X
′
P_X=R_XP_X^\prime
PX=RXPX′
P
Y
=
R
Y
P
Y
′
P_Y=R_YP^\prime_Y
PY=RYPY′
P
Z
=
R
Z
P
Z
′
P_Z=R_ZP_Z^\prime
PZ=RZPZ′
第四部分 多次旋转(外旋与内旋 左乘与右乘)
物体绕外部固定轴旋转
我们首先讨论物体绕外部世界的固定轴旋转,我们假设旋转的顺序是XYZ
此时我们逐步的推导
假设起始点为
P
(
x
0
,
y
0
)
P(x_0,y_0)
P(x0,y0)
先绕X轴旋转
P
X
=
R
X
P
0
P_X=R_XP_0
PX=RXP0
再绕Y轴旋转
P
Y
=
R
Y
P
X
P_Y=R_YP_X
PY=RYPX
最后绕Z轴旋转
P
Z
=
R
Z
P
Y
P_Z=R_ZP_Y
PZ=RZPY
令
P
1
=
P
Z
P_1=P_Z
P1=PZ 显然有
P
1
=
R
Z
R
Y
R
Z
P
0
P_1=R_ZR_YR_ZP_0
P1=RZRYRZP0
这便是一些文章中所说的左乘,或者外旋。
物体绕自身轴旋转
下面我们来讨论物体绕自身轴旋转的问题。
当我们分析一个物体绕自身轴旋转时,该物体显然不是一个点,而是一个具有一定体积的实体,我们讨论的三个轴在物体的身上,物体的点在这三个坐标系内是固定的,于是这种旋转方式就被抽象成了我们之前说的物体(向量)与坐标系一起旋转
假设物体上某一点坐标为
(
x
0
,
y
0
,
z
0
)
(x_0,y_0,z_0)
(x0,y0,z0),初始位置的坐标系为OXYZ,坐标系按照XYZ轴的顺序分别旋转
α
\alpha
α,
β
\beta
β和
γ
\gamma
γ度,最终的坐标系为
O
X
′
Y
′
Z
′
O X^\prime Y^\prime Z^\prime
OX′Y′Z′,此时最终坐标系下的点
(
x
0
′
,
y
0
′
,
z
0
′
)
(x_0^\prime,y_0^\prime,z_0^\prime)
(x0′,y0′,z0′)在初始坐标系下的位置为
(
x
1
,
y
1
,
z
1
)
(x_1,y_1,z_1)
(x1,y1,z1),考察二者的关系。
显然当物体绕自身X轴旋转,旋转完成后坐标系记为
O
X
1
Y
1
Z
1
O X^1 Y^1 Z^1
OX1Y1Z1,其点坐标在旧坐标系下的坐标向量
P
1
P^1
P1与原位置P的关系如下式
P
=
R
X
P
1
P=R_XP^1
P=RXP1
同理有
P
1
=
R
Y
P
2
P^1=R_YP^2
P1=RYP2
P
2
=
R
Z
P
3
P^2=R_ZP^3
P2=RZP3
且
P
3
=
P
′
P^3=P^\prime
P3=P′
那么显然有
P
=
R
X
P
1
=
R
X
R
Y
P
2
=
R
X
R
Y
R
Z
P
′
P=R_XP^1=R_XR_YP^2=R_XR_YR_ZP^\prime
P=RXP1=RXRYP2=RXRYRZP′
这里注意定义
P
P
P为旧坐标系内数值,
P
′
P^\prime
P′为新坐标系内数值。
这便是一些文章中所说的右乘,或内旋,注意这里的三个矩阵乘法的顺序恰好与物体旋转时的矩阵乘法顺序相反
根据以上公式推导出
P
P
P转换置
P
′
P^\prime
P′的变换关系
P
′
=
R
Z
−
1
R
Y
−
1
R
X
−
1
P
P^\prime=R_Z^{-1}R_Y^{-1}R_X^{-1}P
P′=RZ−1RY−1RX−1P
其中
R
Z
−
1
=
[
c
o
s
γ
s
i
n
γ
0
−
s
i
n
γ
c
o
s
γ
0
0
0
1
]
R_Z^{-1}=\begin{bmatrix}cos\gamma&sin\gamma&0\\-sin\gamma&cos\gamma&0\\0&0&1\end{bmatrix}
RZ−1=
cosγ−sinγ0sinγcosγ0001
也就是一些文章中所说的坐标系旋转矩阵
物体不动,坐标系旋转
最后讨论坐标系旋转而物体不动的情况
假设坐标系初始位置为
O
X
Y
Z
OXYZ
OXYZ,其上有一点
(
x
0
,
y
0
,
z
0
)
(x_0,y_0,z_0)
(x0,y0,z0)记作
P
P
P,分别经XYZ轴旋转后得到最终坐标系
O
X
′
Y
′
Z
′
O X^\prime Y^\prime Z^\prime
OX′Y′Z′,原坐标系的点在新坐标系的坐标为
(
x
1
′
,
y
1
′
,
z
1
′
)
(x_1^\prime,y_1^\prime,z_1^\prime)
(x1′,y1′,z1′)记作
P
′
P^\prime
P′。分别分析三次旋转的结果,显然有
P
=
R
X
P
1
P=R_XP^1
P=RXP1
P
1
=
R
Y
P
2
P^1=R_YP^2
P1=RYP2
P
2
=
R
Z
P
3
P^2=R_ZP^3
P2=RZP3
P
3
=
P
′
P^3=P^\prime
P3=P′
显然
P
=
R
X
P
1
=
R
X
R
Y
P
2
=
R
X
R
Y
R
Z
P
′
P=R_XP^1=R_XR_YP^2=R_XR_YR_ZP^\prime
P=RXP1=RXRYP2=RXRYRZP′
同时有
P
′
=
R
Z
−
1
R
Y
−
1
R
X
−
1
P
P^\prime=R_Z^{-1}R_Y^{-1}R_X^{-1}P
P′=RZ−1RY−1RX−1P
可以看出,坐标系旋转情况下,无论物体是否随坐标系旋转,其转换关系都是相同的,即原来坐标系的位置向量(坐标值)位于等号左侧,变换后坐标系下的位置向量(坐标值)位于等号右侧。只要记住该坐标是属于哪个坐标系的,就可以算对转换关系。
总结表
旋转类型 | 物体旋转,坐标系不转 | 物体随坐标系旋转 | 坐标系旋转,物体不转 |
---|---|---|---|
初始坐标系 | O X Y Z OXYZ OXYZ | O X Y Z OXYZ OXYZ | OXYZ |
初始坐标系内一点坐标 | P 0 = [ x 0 y 0 z 0 ] T P_0=\begin{bmatrix}x_0&y_0&z_0\end{bmatrix}^T P0=[x0y0z0]T | P 0 = [ x 0 y 0 z 0 ] T P_0=\begin{bmatrix}x_0&y_0&z_0\end{bmatrix}^T P0=[x0y0z0]T | P 0 = [ x 0 y 0 z 0 ] T P_0=\begin{bmatrix}x_0&y_0&z_0\end{bmatrix}^T P0=[x0y0z0]T |
旋转顺序 | XYZ | XYZ | XYZ |
旋转后坐标系 | O X Y Z OXYZ OXYZ | O X ′ Y ′ Z ′ OX^\prime Y^\prime Z^\prime OX′Y′Z′ | O X ′ Y ′ Z ′ OX^\prime Y^\prime Z^\prime OX′Y′Z′ |
旋转后,初始点在新坐标系下的坐标 | 无 | P 0 ′ = [ x 0 ′ y 0 ′ z 0 ′ ] T P_0^\prime=\begin{bmatrix}x_0^\prime&y_0^\prime&z_0^\prime\end{bmatrix}^T P0′=[x0′y0′z0′]T | P 3 ′ = [ x 3 ′ y 3 ′ z 3 ′ ] T P_3^\prime=\begin{bmatrix}x_3^\prime&y_3^\prime&z_3^\prime\end{bmatrix}^T P3′=[x3′y3′z3′]T |
旋转后,初始点在旧坐标系下的坐标 | P 1 = [ x 1 y z z 1 ] T P_1=\begin{bmatrix}x_1&y_z&z_1\end{bmatrix}^T P1=[x1yzz1]T | P 2 = [ x 2 y 2 z 2 ] T P_2=\begin{bmatrix}x_2&y_2&z_2\end{bmatrix}^T P2=[x2y2z2]T | P 0 = [ x 0 y 0 z 0 ] T P_0=\begin{bmatrix}x_0&y_0&z_0\end{bmatrix}^T P0=[x0y0z0]T |
新旧坐标的关系 | P 1 = R Z R Y R X P 0 P_1=R_ZR_YR_XP_0 P1=RZRYRXP0 | P 2 = R X R Y R Z P 0 ′ P_2=R_XR_YR_ZP_0^\prime P2=RXRYRZP0′ | P 0 = R X R Y R Z P 3 ′ P_0=R_XR_YR_ZP_3^\prime P0=RXRYRZP3′ |
简化记忆 | P 1 = R P 0 P_1=RP_0 P1=RP0 | P = R P ′ P=RP^\prime P=RP′ | P = R P ′ P=RP^\prime P=RP′ |