二维空间中的点绕原点的旋转矩阵是怎么来的?(内含视频讲解)

如是我闻: 如果直接看书的话,他会告诉你二维空间中点的旋转变换的定义是这样的。

R ( β ) = [ cos ⁡ ( β ) − sin ⁡ ( β ) sin ⁡ ( β ) cos ⁡ ( β ) ] \mathbf{R}(\beta) = \begin{bmatrix} \cos(\beta) & -\sin(\beta) \\ \sin(\beta) & \cos(\beta) \end{bmatrix} R(β)=[cos(β)sin(β)sin(β)cos(β)]

其中 β \beta β是按逆时针方向测量的旋转角度。

可是为什么是这样的呢?这矩阵是怎么来的呢?

二维空间中围绕原点的旋转矩阵是怎么来的

几何基础

在纸上可以画一下,在平面上有一点 P ( x , y ) P(x, y) P(x,y),你想将这个点围绕原点 O ( 0 , 0 ) O(0, 0) O(0,0)旋转某个角度 β \beta β。旋转是逆时针方向的。旋转后,点 P P P 的新位置称为 P ′ ( x ′ , y ′ ) P'(x', y') P(x,y)

从三角函数出发

考虑点 P P P 初始时与x轴的夹角为 α \alpha α,且 P P P 到原点的距离(即向量 O P OP OP的长度)是 r r r。根据三角函数,原始坐标 x x x y y y 可以表示为:

  • x = r cos ⁡ ( α ) x = r \cos(\alpha) x=rcos(α)
  • y = r sin ⁡ ( α ) y = r \sin(\alpha) y=rsin(α)

当我们逆时针旋转这个点 β \beta β 度后,新的夹角是 α + β \alpha + \beta α+β。因此,旋转后的坐标 x ′ x' x y ′ y' y 可以用新的角度来表示 (这里不明白可以去看直角坐标系与极坐标系的转换):

  • x ′ = r cos ⁡ ( α + β ) x' = r \cos(\alpha + \beta) x=rcos(α+β)
  • y ′ = r sin ⁡ ( α + β ) y' = r \sin(\alpha + \beta) y=rsin(α+β)

利用余弦和正弦的加法公式

我们可以应用余弦和正弦的加法公式来展开这两个表达式:

  • cos ⁡ ( α + β ) = cos ⁡ ( α ) cos ⁡ ( β ) − sin ⁡ ( α ) sin ⁡ ( β ) \cos(\alpha + \beta) = \cos(\alpha)\cos(\beta) - \sin(\alpha)\sin(\beta) cos(α+β)=cos(α)cos(β)sin(α)sin(β)
  • sin ⁡ ( α + β ) = sin ⁡ ( α ) cos ⁡ ( β ) + cos ⁡ ( α ) sin ⁡ ( β ) \sin(\alpha + \beta) = \sin(\alpha)\cos(\beta) + \cos(\alpha)\sin(\beta) sin(α+β)=sin(α)cos(β)+cos(α)sin(β)

将这些代入 x ′ x' x y ′ y' y 的表达式,我们得到:

  • x ′ = r cos ⁡ ( α ) cos ⁡ ( β ) − r sin ⁡ ( α ) sin ⁡ ( β ) x' = r \cos(\alpha)\cos(\beta) - r \sin(\alpha)\sin(\beta) x=rcos(α)cos(β)rsin(α)sin(β)
  • y ′ = r sin ⁡ ( α ) cos ⁡ ( β ) + r cos ⁡ ( α ) sin ⁡ ( β ) y' = r \sin(\alpha)\cos(\beta) + r \cos(\alpha)\sin(\beta) y=rsin(α)cos(β)+rcos(α)sin(β)

既然 x = r cos ⁡ ( α ) x = r \cos(\alpha) x=rcos(α) y = r sin ⁡ ( α ) y = r \sin(\alpha) y=rsin(α),我们可以简化上面的表达式为:

  • x ′ = x cos ⁡ ( β ) − y sin ⁡ ( β ) x' = x \cos(\beta) - y \sin(\beta) x=xcos(β)ysin(β)
  • y ′ = x sin ⁡ ( β ) + y cos ⁡ ( β ) y' = x \sin(\beta) + y \cos(\beta) y=xsin(β)+ycos(β)

这个变换意味着每个点在平面上的新位置是通过将其旧位置从原点旋转 β \beta β度获得的。这种旋转保持了点与原点之间的距离不变(即 r r r是不变的),但是改变了点相对于原始x轴的角度。

向量和矩阵表示

当然有了以上的方程式,我们可以用向量和矩阵表示这个方程组,

给定一个点 P P P 的坐标为 ( x , y ) (x, y) (x,y),我们可以将其表示为列向量:

P = [ x y ] \mathbf{P} = \begin{bmatrix} x \\ y \end{bmatrix} P=[xy]

当这个点逆时针旋转角度 β \beta β 后,新的坐标 P ′ P' P 可以通过以下矩阵运算得到:

P ′ = R ( β ) P \mathbf{P'} = \mathbf{R}(\beta) \mathbf{P} P=R(β)P

其中,旋转矩阵 R ( β ) \mathbf{R}(\beta) R(β)定义为:

R ( β ) = [ cos ⁡ ( β ) − sin ⁡ ( β ) sin ⁡ ( β ) cos ⁡ ( β ) ] \mathbf{R}(\beta) = \begin{bmatrix} \cos(\beta) & -\sin(\beta) \\ \sin(\beta) & \cos(\beta) \end{bmatrix} R(β)=[cos(β)sin(β)sin(β)cos(β)]

计算示例

将旋转矩阵乘以点 P P P 的坐标向量,我们得到:

P ′ = [ cos ⁡ ( β ) − sin ⁡ ( β ) sin ⁡ ( β ) cos ⁡ ( β ) ] [ x y ] = [ x cos ⁡ ( β ) − y sin ⁡ ( β ) x sin ⁡ ( β ) + y cos ⁡ ( β ) ] \mathbf{P'} = \begin{bmatrix} \cos(\beta) & -\sin(\beta) \\ \sin(\beta) & \cos(\beta) \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} x \cos(\beta) - y \sin(\beta) \\ x \sin(\beta) + y \cos(\beta) \end{bmatrix} P=[cos(β)sin(β)sin(β)cos(β)][xy]=[xcos(β)ysin(β)xsin(β)+ycos(β)]

这就是旋转后的坐标 P ′ P' P,其中:

  • 第一行给出了新的 x 坐标 x ′ = x cos ⁡ ( β ) − y sin ⁡ ( β ) x' = x \cos(\beta) - y \sin(\beta) x=xcos(β)ysin(β)
  • 第二行给出了新的 y 坐标 y ′ = x sin ⁡ ( β ) + y cos ⁡ ( β ) y' = x \sin(\beta) + y \cos(\beta) y=xsin(β)+ycos(β)

所以其实旋转矩阵就是从方程组的矩阵表示里得来的

非常的有品

以上

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值