【3D数学】04 - 旋转变换

1. 方位和角位移

我们知道不能用绝对坐标来描述物体的 位置 ,要描述物体的 位置 ,必须把物体放置于特定的参考系中。

描述 位置 实际上就是描述相对于给定参考点(通常是坐标系的原点)的 位移

同样,描述物体 方位 时,也不能使用绝对量。
与位置只是相对已知点的位移一样,方位是通过于相对已知方位(通常称为“单位”方位或“源”方位)的旋转来描述的。

  • 旋转的量称作角位移
  • 换句话说,在数学上描述 方位 就等价与描述 角位移

整理如下:

  • 方位

    • 表示的是一种静态的状态;
    • 当用矩阵表示方位时,此时矩阵表示的是一个“点”,而该点的坐标就是原点进行矩阵表示的旋转之后所在的地方。即描述 方位 实际上就是描述相对于给定参考点(通常是坐标系的原点)的 角位移
  • 角位移

    • 表示的是一种动态的过程;
    • 当用矩阵表示角位移时,旋转变换的量即是角位移。

具体来说,我们用矩阵和四元数来表示“角位移”,用欧拉角来表示“方位”。

2. 矩阵形式 —— 用矩阵描述旋转变换

3D 中,描述坐标系中 方位 的一种方法就是列出这个坐标系的 基向量 ,而这些基向量是相对于其他坐标系进行描述的。
这些基向量构成一个 3 × 3 3 \times 3 3×3 矩阵,然后就能用矩阵形式来描述 方位

换言之,能用一个 旋转矩阵 来描述这两个坐标系之间的相对方位,这个旋转矩阵用于把一个坐标系中的向量转换到另一个坐标系中。

3. 基本旋转矩阵

3.1 绕 < 3 - 轴 > 旋转

screenShot.png

先将 F 1 → \underrightarrow{F_1} F1 看做基向量空间 I I I ,可推出:
{ 2 1 ⃗ T = [ cos ⁡ θ 3 sin ⁡ θ 3 0 ] 2 2 ⃗ T = [ − sin ⁡ θ 3 cos ⁡ θ 3 0 ] 2 3 ⃗ T = [ 0 0 1 ] \begin{cases} &\vec{2_1}^{T} = \begin{bmatrix} \cos{\theta_3} & \sin{\theta_3} & 0 \end{bmatrix} \\[2ex] &\vec{2_2}^{T} = \begin{bmatrix} -\sin{\theta_3} & \cos{\theta_3} & 0 \end{bmatrix} \\[2ex] &\vec{2_3}^{T} = \begin{bmatrix} 0 & 0 & 1 \end{bmatrix} \end{cases} 21 T=[cosθ3sinθ30]22 T=[sinθ3cosθ30]23 T=[001]

可得绕 < 3 - 轴 > 旋转的 旋转矩阵 C 3 \bold{C_{3}} C3 为:

C 3 = C 21 = [ 2 1 ⃗ 2 2 ⃗ 2 3 ⃗ ] = [ cos ⁡ θ 3 − sin ⁡ θ 3 0 sin ⁡ θ 3 cos ⁡ θ 3 0 0 0 1 ] \bold{C_{3}} = \bold{C_{21}} = \begin{bmatrix} \vec{2_1} & \vec{2_2} & \vec{2_3} \end{bmatrix} = \begin{bmatrix} \begin{array}{c:c:c} \cos{\theta_3} & -\sin{\theta_3} & 0 \\[2ex] \sin{\theta_3} & \cos{\theta_3} & 0 \\[2ex] 0 & 0 & 1 \end{array} \end{bmatrix} C3=C21=[21 22 23 ]=cosθ3sinθ30sinθ3cosθ30001

C 21 ⋅ F 1 = F 2 \bold{C_{21}} \cdot \bold{F_1} = \bold{F_2} C21F1=F2 可得:

F 1 ↦ C 21 F 2 \bold{F_1} \xmapsto{\bold{C_{21}}} \bold{F_2} F1C21 F2

即:

C 21 ⋅ [ 1 1 ⃗ 1 2 ⃗ 1 3 ⃗ ] = [ 2 1 ⃗ 2 2 ⃗ 2 3 ⃗ ] \bold{C_{21}} \cdot \begin{bmatrix} \vec{1_1} & \vec{1_2} & \vec{1_3} \end{bmatrix} =\begin{bmatrix} \vec{2_1} & \vec{2_2} & \vec{2_3} \end{bmatrix} C21[11 12 13 ]=[21 22 23 ]

3.2 绕 < 2 - 轴 > 旋转

screenShot.png

先将 F 1 → \underrightarrow{F_1} F1 看做基向量空间 I I I ,可推出:
{ 2 1 ⃗ T = [ cos ⁡ θ 2 0 − sin ⁡ θ 2 ] 2 2 ⃗ T = [ 0 1 0 ] 2 3 ⃗ T = [ sin ⁡ θ 2 0 cos ⁡ θ 2 ] \begin{cases} &\vec{2_1}^{T} = \begin{bmatrix} \cos{\theta_2} & 0 & -\sin{\theta_2} \end{bmatrix} \\[2ex] &\vec{2_2}^{T} = \begin{bmatrix} 0 & 1 & 0 \end{bmatrix} \\[2ex] &\vec{2_3}^{T} = \begin{bmatrix} \sin{\theta_2} & 0 & \cos{\theta_2} \end{bmatrix} \end{cases} 21 T=[cosθ20sinθ2]22 T=[010]23 T=[sinθ20cosθ2]

可得绕 < 2 - 轴 > 旋转的 旋转矩阵 C 2 \bold{C_{2}} C2 为:

C 2 = C 21 = [ cos ⁡ θ 2 0 sin ⁡ θ 2 0 1 0 − sin ⁡ θ 2 0 cos ⁡ θ 2 ] \bold{C_{2}} = \bold{C_{21}} = \begin{bmatrix} \begin{array}{c:c:c} \cos{\theta_2} & 0 & \sin{\theta_2} \\[2ex] 0 & 1 & 0 \\[2ex] -\sin{\theta_2} & 0 & \cos{\theta_2} \end{array} \end{bmatrix} C2=C21=cosθ20sinθ2010sinθ20cosθ2

C 21 ⋅ F 1 = F 2 \bold{C_{21}} \cdot \bold{F_1} = \bold{F_2} C21F1=F2 可得:

F 1 ↦ C 21 F 2 \bold{F_1} \xmapsto{\bold{C_{21}}} \bold{F_2} F1C21 F2

即:

C 21 ⋅ [ 1 1 ⃗ 1 2 ⃗ 1 3 ⃗ ] = [ 2 1 ⃗ 2 2 ⃗ 2 3 ⃗ ] \bold{C_{21}} \cdot \begin{bmatrix} \vec{1_1} & \vec{1_2} & \vec{1_3} \end{bmatrix} =\begin{bmatrix} \vec{2_1} & \vec{2_2} & \vec{2_3} \end{bmatrix} C21[11 12 13 ]=[21 22 23 ]

3.3 绕 < 1 - 轴 > 旋转

screenShot.png

先将 F 1 → \underrightarrow{F_1} F1 看做基向量空间 I I I ,可推出:
{ 2 1 ⃗ T = [ 1 0 0 ] 2 2 ⃗ T = [ 0 cos ⁡ θ 1 sin ⁡ θ 1 ] 2 3 ⃗ T = [ 0 − sin ⁡ θ 1 cos ⁡ θ 1 ] \begin{cases} &\vec{2_1}^{T} = \begin{bmatrix} 1 & 0 & 0 \end{bmatrix} \\[2ex] &\vec{2_2}^{T} = \begin{bmatrix} 0 & \cos{\theta_1} & \sin{\theta_1} \end{bmatrix} \\[2ex] &\vec{2_3}^{T} = \begin{bmatrix} 0 & -\sin{\theta_1} & \cos{\theta_1} \end{bmatrix} \end{cases} 21 T=[100]22 T=[0cosθ1sinθ1]23 T=[0sinθ1cosθ1]

可得绕 < 1 - 轴 > 旋转的 旋转矩阵 C 1 \bold{C_{1}} C1 为:

C 1 = C 12 = [ 1 0 0 0 cos ⁡ θ 1 − sin ⁡ θ 1 0 sin ⁡ θ 1 cos ⁡ θ 1 ] \bold{C_{1}} = \bold{C_{12}} = \begin{bmatrix} \begin{array}{c:c:c} 1 & 0 & 0 \\[2ex] 0 & \cos{\theta_1} & -\sin{\theta_1} \\[2ex] 0 & \sin{\theta_1} & \cos{\theta_1} \end{array} \end{bmatrix} C1=C12=1000cosθ1sinθ10sinθ1cosθ1

C 21 ⋅ F 1 = F 2 \bold{C_{21}} \cdot \bold{F_1} = \bold{F_2} C21F1=F2 可得:

F 1 ↦ C 21 F 2 \bold{F_1} \xmapsto{\bold{C_{21}}} \bold{F_2} F1C21 F2

即:

C 21 ⋅ [ 1 1 ⃗ 1 2 ⃗ 1 3 ⃗ ] = [ 2 1 ⃗ 2 2 ⃗ 2 3 ⃗ ] \bold{C_{21}} \cdot \begin{bmatrix} \vec{1_1} & \vec{1_2} & \vec{1_3} \end{bmatrix} =\begin{bmatrix} \vec{2_1} & \vec{2_2} & \vec{2_3} \end{bmatrix} C21[11 12 13 ]=[21 22 23 ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值