1 坐标系的旋转变换
例子:原三维坐标系O1中,有一条射线方位角为60度(即射线向x-y平面投影后与x轴的夹角),俯仰角为-30度(即射线与x-y平面的夹角),现在以射线方向为x轴构建新的三维坐标系O2、以射线方向为y轴构建新的三维坐标系O3、以射线方向为z轴构建新的三维坐标系O4,请问原三维坐标系O1旋转为新三维坐标系O2、O3、O4的旋转矩阵如何计算?
【O1转换为O2】
要将原三维坐标系O1旋转到新坐标系O2,其中O2的x轴方向由方位角60度和俯仰角-30度确定,旋转矩阵的计算步骤如下:
- 确定新x轴方向:
根据方位角\(θ=60°\)和俯仰角\(φ=-30°\),计算新\(\mathbf{x}\)轴单位向量在O1中的坐标:
\[\mathbf{x}_2 = \begin{bmatrix}
\cos\theta \cos\phi \\
\sin\theta \cos\phi \\
\sin\phi
\end{bmatrix} = \begin{bmatrix}
\cos60^\circ \cos(-30^\circ) \\
\sin60^\circ \cos(-30^\circ) \\
\sin(-30^\circ)
\end{bmatrix} = \begin{bmatrix}
\frac{\sqrt{3}}{4} \\
\frac{3}{4} \\
-\frac{1}{2}
\end{bmatrix}
\]
- 构造新y轴和z轴:
\(\mathbf{y}\)轴:通过原\(\mathbf{z}\)轴与\(\mathbf{x}_2\)叉乘并归一化:
\[\mathbf{y}_2 = \frac{\mathbf{z}_1 \times \mathbf{x}_2}{\|\mathbf{z}_1 \times \mathbf{x}_2\|} = \begin{bmatrix}
-\frac{\sqrt{3}}{2} \\
\frac{1}{2} \\
0
\end{bmatrix}
\]
\(\mathbf{z}\)轴:通过\(\mathbf{x}_2\)与\(\mathbf{y}_2\)叉乘:
\[\mathbf{z}_2 = \mathbf{x}_2 \times \mathbf{y}_2 = \begin{bmatrix}
\frac{1}{4} \\
\frac{\sqrt{3}}{4} \\
\frac{\sqrt{3}}{2}
\end{bmatrix}
\]
- 组合旋转矩阵:
将三个正交单位向量作为列向量,得到旋转矩阵:
\[R_{O1 \to O2} = \begin{bmatrix}
\frac{\sqrt{3}}{4} & -\frac{\sqrt{3}}{2} & \frac{1}{4} \\
\frac{3}{4} & \frac{1}{2} & \frac{\sqrt{3}}{4} \\
-\frac{1}{2} & 0 & \frac{\sqrt{3}}{2}
\end{bmatrix}
\]
【O1转换为O3】
要将原三维坐标系O1旋转到新坐标系O3,其中O3的y轴方向由方位角60度和俯仰角-30度确定,旋转矩阵的计算步骤如下:
- 确定射线方向在O1中的坐标
给定方位角\(θ=60°\),俯仰角\(φ=-30°\),射线方向向量在O1中的坐标为:
\[\mathbf{v} = \begin{bmatrix}
\cos60^\circ \cos(-30^\circ) \\
\sin60^\circ \cos(-30^\circ) \\
\sin(-30^\circ)
\end{bmatrix} = \begin{bmatrix}
\frac{\sqrt{3}}{4} \\
\frac{3}{4} \\
-\frac{1}{2}
\end{bmatrix}
\]
- 构建O3坐标系(射线作为y轴)
新y轴:
\[\mathbf{y}_3 = \mathbf{v} = \begin{bmatrix} \frac{\sqrt{3}}{4} \\ \frac{3}{4} \\ -\frac{1}{2} \end{bmatrix}
\]
新x轴:选择原坐标系O1的z轴(\((\mathbf{z}_1 = [0, 0, 1]^\top\))与\(\mathbf{y}_3\)叉乘,归一化后得到:
\[\mathbf{x}_3 = \frac{\mathbf{z}_1 \times \mathbf{y}_3}{\|\mathbf{z}_1 \times \mathbf{y}_3\|} = \begin{bmatrix} -\frac{\sqrt{3}}{2} \\ \frac{1}{2} \\ 0 \end{bmatrix}
\]
新z轴:通过\(\mathbf{y}_3 \times \mathbf{x}_2\)计算:
\[\mathbf{z}_3 = \mathbf{y}_3 \times \mathbf{x}_3 = \begin{bmatrix} \frac{1}{4} \\ \frac{\sqrt{3}}{4} \\ \frac{\sqrt{3}}{2} \end{bmatrix}
\]
- 旋转矩阵\(R_{O1 \to O3}\):将\(\mathbf{x}_3, \mathbf{y}_3, \mathbf{z}_3\)作为列向量:
\[R_{O1 \to O3} = \begin{bmatrix}
-\frac{\sqrt{3}}{2} & \frac{\sqrt{3}}{4} & \frac{1}{4} \\
\frac{1}{2} & \frac{3}{4} & \frac{\sqrt{3}}{4} \\
0 & -\frac{1}{2} & \frac{\sqrt{3}}{2}
\end{bmatrix}
\]
【O1转换为O4】
- 构建O4坐标系(射线作为z轴)
新z轴:
\[\mathbf{z}_4 = \mathbf{v} = \begin{bmatrix} \frac{\sqrt{3}}{4} \\ \frac{3}{4} \\ -\frac{1}{2} \end{bmatrix}
\]
新x轴:选择原坐标系O1的z轴(\(\mathbf{z}_1 = [0, 0, 1]^\top\))与\(\mathbf{z}_4\)叉乘,归一化后得到:
\[ \mathbf{x}_4 = \frac{\mathbf{z}_1 \times \mathbf{z}_4}{\|\mathbf{z}_1 \times \mathbf{z}_4\|} = \begin{bmatrix} -\frac{\sqrt{3}}{2} \\ \frac{1}{2} \\ 0 \end{bmatrix}
\]
新y轴:通过\(\mathbf{z}_4 \times \mathbf{x}_4\)计算:
\[\mathbf{y}_4 = \mathbf{z}_4 \times \mathbf{x}_4 = \begin{bmatrix} \frac{1}{4} \\ \frac{\sqrt{3}}{4} \\ \frac{\sqrt{3}}{2} \end{bmatrix}
\]
旋转矩阵\(R_{O1 \to O4}\):将\(\mathbf{x}_4, \mathbf{y}_4, \mathbf{z}_4\)作为列向量:
\[R_{O1 \to O4} = \begin{bmatrix}
-\frac{\sqrt{3}}{2} & \frac{1}{4} & \frac{\sqrt{3}}{4} \\
\frac{1}{2} & \frac{\sqrt{3}}{4} & \frac{3}{4} \\
0 & \frac{\sqrt{3}}{2} & -\frac{1}{2}
\end{bmatrix}
\]