二维平面上,向量绕原点旋转,假设旋转角度为 β \beta β,旋转后的坐标公式为:
∣ X n e w Y n e w ∣ = ∣ cos β − sin β sin β cos β ∣ ∣ X Y ∣ \begin{vmatrix} X_{new} \\ Y_{new} \end{vmatrix} = \begin{vmatrix} \cos \beta & -\sin \beta \\ \sin \beta & \cos \beta \end{vmatrix} \begin{vmatrix} X \\ Y \end{vmatrix} XnewYnew = cosβsinβ−sinβcosβ XY
其示意图如下(手工图中,箭头方向均指向坐标轴的正方向):
在二维平面上不存在绕坐标轴旋转的说法。
在三维坐标上,绕坐标轴旋转与绕原点旋转的关系:
在三维坐标上,绕x坐标轴旋转,相当于x坐标不变,y、z坐标绕原点旋转。
因此我们可以立刻得到如下公式:
需要注意的是:二位平面中,旋转方向是逆时针;在三维坐标中,旋转角度的方向依然是逆时针为准。
绕x轴旋转矩阵公式:
∣
X
n
e
w
Y
n
e
w
Z
n
e
w
∣
=
∣
1
0
0
0
cos
β
−
sin
β
0
sin
β
cos
β
∣
∣
X
Y
Z
∣
\begin{vmatrix} X_{new} \\ Y_{new} \\ Z_{new} \end{vmatrix} = \begin{vmatrix} 1 & 0 & 0 \\ 0 & \cos \beta & -\sin \beta \\ 0 & \sin \beta & \cos \beta \end{vmatrix} \begin{vmatrix} X \\ Y \\Z\end{vmatrix}
XnewYnewZnew
=
1000cosβsinβ0−sinβcosβ
XYZ
绕z轴旋转矩阵公式:
∣
X
n
e
w
Y
n
e
w
Z
n
e
w
∣
=
∣
cos
β
0
−
sin
β
0
1
0
sin
β
0
cos
β
∣
∣
X
Y
Z
∣
\begin{vmatrix} X_{new} \\ Y_{new} \\ Z_{new} \end{vmatrix} = \begin{vmatrix} \cos \beta & 0 & -\sin \beta \\ 0 & 1 & 0 \\ \sin \beta & 0 & \cos \beta \end{vmatrix} \begin{vmatrix} X \\ Y \\Z\end{vmatrix}
XnewYnewZnew
=
cosβ0sinβ010−sinβ0cosβ
XYZ
注意:绕y轴旋转跟绕x、z轴略有不同。
绕x、z轴旋转时,我们的视角是:面对x、z轴的正方面看向x、z轴的负方向,且旋转角度的方向为逆时针。绕y轴旋转时也是这样,但是这时可以看出,绕y轴旋转时,旋转方向是从竖坐标z轴转向横坐标x轴。
如下图中,可以看到差异:
上述差异的原因是,我们的观察视角不同。为了追求不同观察视角下相同的公式处理,绕y轴旋转的坐标公式如下:
∣
X
n
e
w
Y
n
e
w
Z
n
e
w
∣
=
∣
cos
β
0
sin
β
0
1
0
sin
β
0
−
cos
β
∣
∣
X
Y
Z
∣
\begin{vmatrix} X_{new} \\ Y_{new} \\ Z_{new} \end{vmatrix} = \begin{vmatrix} \cos \beta & 0 & \sin \beta \\ 0 & 1 & 0 \\ \sin \beta & 0 & -\cos \beta \end{vmatrix} \begin{vmatrix} X \\ Y \\Z\end{vmatrix}
XnewYnewZnew
=
cosβ0sinβ010sinβ0−cosβ
XYZ
其详细推导如下图:
通过以上分析,我个人觉得,绕坐标旋转公式,基本上已经说的很清楚了。