我们都知道,矩阵的乘法可以表示旋转。那么,这一理论的数学机理是什么呢?以及,这个旋转角度该怎么用矩阵表示呢?
本文用二维向量旋转来推导旋转矩阵的公式。假设,我们有一个向量P(x, y),准备通过一个旋转矩阵将其旋转到Q(x’, y’),假设旋转角度为 α \alpha α。
我们用极坐标表示向量P和向量Q,默认原点是向量的起点, θ \theta θ和 ϕ \phi ϕ分别表示P和Q与x轴正向的夹角。那么有,
x = r ∗ c o s ( θ ) (1) x=r*cos(\theta)\tag{1} x=r∗cos(θ)(1)
y = r ∗ s i n ( θ ) (2) y=r*sin(\theta)\tag{2} y=r∗sin(θ)(2)
x ′ = r ∗ c o s ( ϕ ) = r ∗ c o s ( α − θ ) (3) x'=r*cos(\phi)=r*cos(\alpha-\theta)\tag{3} x′=r∗cos(ϕ)=r∗cos(α−θ)(3)
y ′ = r ∗ s i n ( ϕ ) = r ∗ s i n ( α − θ ) (4) y'=r*sin(\phi)=r*sin(\alpha-\theta)\tag{4} y′=r∗sin(ϕ)=r∗sin(α−θ)(4)
咱们用一张图可以清晰解释上面5个公式:
我们直接把式(3)、(4)展开:
x ′ = r ∗ c o s ( θ ) c o s ( α ) + r ∗ s i n ( θ ) s i n ( α ) = x c o s ( α ) + y s i n ( α ) (5) x'=r*cos(\theta)cos(\alpha)+r*sin(\theta)sin(\alpha)=xcos(\alpha)+ysin(\alpha)\tag{5} x′=r∗cos(θ)cos(α)+r∗sin(θ)sin(α)=xcos(α)+ysin(α)(5)
y ′ = r ∗ s i n ( α ) c o s ( θ ) − r ∗ s i n ( θ ) c o s ( α ) = x s i n ( α ) − y c o s ( α ) (6) y'=r*sin(\alpha)cos(\theta)-r*sin(\theta)cos(\alpha)=xsin(\alpha)-ycos(\alpha)\tag{6} y′=r∗sin(α)cos(θ)−r∗sin(θ)cos(α)=xsin(α)−ycos(α)(6)
整理(5)(6)得知:
R = [ c o s ( α ) − s i n ( α ) s i n ( α ) c o s ( α ) ] R= \begin{bmatrix} {cos(\alpha)}&{-sin(\alpha)}\\ {sin(\alpha)}&{cos(\alpha)} \end{bmatrix} R=[cos(α)sin(α)−sin(α)cos(α)]