Loading... ## 摘要 在二维平面直角坐标系中,对平面上的点进行旋转,是一个线性变换的过程。同理,向量旋转可以通过坐标系同样化为点的旋转。以推导向量旋转方法为例,总结点和向量的旋转方法。 ## 推导 本文默认逆时针旋转,若要顺时针旋转,只需要将角度变为负即可。 假设在单位圆上有一点 $B$ 与原点 $O$ 连成的向量 $\overrightarrow{OB}$ ,与 $x$ 轴之间形成的夹角为 $\alpha$ ,则 $B$ 的坐标可以表示为 $(x_0 = cos\alpha,y_0 = sin\alpha)$ 推广,若不是单位圆,现在的圆半径为 $R$(圆心仍在圆点上),则 $x_0 = |R| \cdot cos\alpha,y_0 = |R| \cdot sin\alpha$ 假如向量 $\overrightarrow{OB}$ 逆时针旋转至 $\overrightarrow{OB'}$ ,旋转角为 $\beta$,则现在 $x_1 = |R| \cdot cos(\alpha + \beta),y_1 = |R| \cdot sin(\alpha + \beta)$ 用~~实用而美丽的(yys 名言~~ 诱导公式将其拆开得到: $x_1 = |R|\cdot(cos\alpha cos\beta - sin\alpha sin\beta),y_1 = |R| \cdot (sin\alpha cos\beta + cos\alpha sin\beta)$ 然后可以看见拆了括号以后两个式子都可以用 $x_0,y_0$ 来代替一些项,得到: $x_1 = x_0cos\beta - y_0sin\beta,y_1 = y_0cos\beta + x_0 sin\beta$ 回到摘要中说的,旋转变换是一个线性变换,可以用矩阵来表示。该矩阵叫变换矩阵。对一个点实施线性变换就是通过乘上该线性变换的矩阵完成的。 在二维平面直角坐标系中的旋转变换矩阵就是: $$ \begin{bmatrix} x_0 & y_0 \end{bmatrix} \begin{bmatrix} cos\beta & sin\beta \\-sin\beta & cos\beta \end{bmatrix} = \begin{bmatrix} x_1 & y_1 \end{bmatrix} $$ ## 推广:绕任意一点旋转 刚才的步骤都是绕原点旋转的,想让其绕任意一点旋转,只需要先乘上一个位移变换矩阵(变回原点)再乘上旋转变换矩阵最后再乘回来即可。 比如现在想让 $(x,y)$ 绕 $(x_0,y_0)$ 逆时针旋转 $\beta \ \mathrm{rad}$ ,则最终坐标为 $(x_1,y_1)$: $$ \begin{bmatrix} x & y & 1 \\0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\0 & 1 & 0 \\ x_0 & y_0 & 1 \end{bmatrix} \begin{bmatrix} cos\beta & sin\beta & 0 \\-sin\beta & cos\beta & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\0 & 1 & 0 \\ -x_0 & -y_0 & 1 \end{bmatrix} = \begin{bmatrix} x_1 & y_1 & - \\ - & - & - \\ - & - & -\end{bmatrix} $$ 直接写成公式就是: $x_1 = (x+x_0) cos\beta - (y+y_0)sin\beta - x_0, y_1 = (x+x_0) sin\beta + (y+y_0)cos \beta - y_0 $ ## 后记 后来我了解到,在数学课上,平面直角坐标系的象限是逆时针方向转的,所以我推公式的时候,也是把 $\beta$ 角往逆时针转。但是在计科里面,许多函数是把顺时针规定为正的,所以许多 Blog 推的也是往顺时针转的。 最后修改:2021 年 10 月 05 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏