watch: CG - 闫令琪 03 | Transformation

P3 Transformation

旋转矩阵

  • 乘以一个向量时,改变向量方向的矩阵

  • 表示了不同维度坐标的线性变换

  • 作用:把向量(默认绕原点、逆时针)的旋转用矩阵乘法表示

  • 对于一个二维向量,旋转关系用矩阵乘法形式为:

    $$ \begin{pmatrix} x’ \\ y' \end{pmatrix} = M_{2×2} \begin{pmatrix} x \\ y \end{pmatrix} $$

    用待定系数法可以确定各元素

    对于(a,0)点:

    $$ \begin{pmatrix} acosθ \\ asinθ \end{pmatrix} = \begin{pmatrix} A & B \\ C & D \end{pmatrix}

    \begin{pmatrix} a \\ 0 \end{pmatrix} $$

    解得:$A=cosθ, C=sinθ$; 同理代入(0,b)点,可解得:$B=-sinθ, D=cosθ$,所以旋转矩阵为:

    $$ \begin{pmatrix} cosθ & -sinθ \\ sinθ & cosθ \end{pmatrix} $$

旋转矩阵的逆

  • 等于它的转置($R_θ^{-1}=R_θ^T$)

  • 因为旋转矩阵是一个正交矩阵

  • 逆操作就是顺时针旋转相同的角度,也就是正向旋转$-θ$,代入得:

    $$ \begin{pmatrix} cosθ & sinθ \\ -sinθ & cosθ \end{pmatrix} $$

    即为旋转矩阵的转置

齐次坐标

  • 向量最后加个0,点最后加个1

  • 3D vector: $(x,y,z,0)^T$
    3D point: $(x,y,z,1)^T$

  • 作用:平移变换也可写成一个矩阵

  • 对于平移关系:

    $$ \begin{cases} x’ = x + t_x \\ y’ = y + t_y \end{cases} $$

    x,y方向都没有旋转,所以旋转矩阵为:

    $$ \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} $$

    写成齐次坐标:

    $$ \begin{pmatrix} 1 & 0 \\ 0 & 1 \\ 0 & 0 \end{pmatrix} $$

    只有平移,附加到后面:

    $$ \begin{pmatrix} x’ \\ y’ \\ 0 \end{pmatrix} = \begin{pmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x \\ y \\ 0 \end{pmatrix} $$

  • 同一点的表示不唯一:

    $$ \begin{pmatrix} x \\ y \\ z \\ 1 \end{pmatrix} = \begin{pmatrix} kx \\ ky \\ kz \\ k \end{pmatrix} $$

仿射变换

  • 旋转变换和平移变换拼成一个矩阵