美文网首页
基本变换矩阵

基本变换矩阵

作者: sakura_1 | 来源:发表于2019-12-13 17:02 被阅读0次

    点p = (p_{x}, p_{y},p_{z})

    1 平移变换

    • 平移矩阵 T

    T(t) = T(t_{x}, t_{y}, t_{z}) = \begin{bmatrix} 1&0 &0 &t_{x} \\ 0&1 &0 &t_{y} \\ 0&0 &1 &t_{z} \\ 0&0 &0 &1 \end{bmatrix}

    • 平移后的新点
      p^{'} = (p_{x} + t_{x},p_{y} + t_{y} ,p_{z} + t_{z})

    2 旋转矩阵

    • 旋转矩阵用R_{x}(\phi)R_{y}(\phi)R_{z}(\phi) 分别表示

    R_{x}(\phi) = \begin{bmatrix} 0&1 &0 &0 \\ 0&cos\phi &-sin\phi &0 \\ 0&sin\phi &cos\phi &0 \\ 0&0 &0 &1 \end{bmatrix}

    R_{y}(\phi) = \begin{bmatrix} cos\phi&0 &sin\phi &0 \\ 0&1 &0 &0 \\ -sin\phi&0 &cos\phi &0 \\ 0&0 &0 &1 \end{bmatrix}

    R_{z}(\phi) = \begin{bmatrix} cos\phi&-sin\phi &0 &0 \\ sin\phi&cos\phi &0 &0 \\ 0&0 &1 &0 \\ 0&0 &0 &1 \end{bmatrix}

    • 对一个绕任意轴旋转角度\phi3*3旋转矩阵R来说,其对角元素之和是一个与坐标轴无关的常数,称为迹(Trace)

    R_{i}(\phi) = \begin{bmatrix} \color{red}{c_{1}} &… &… &0 \\ …& \color{red}{c_{2}} &… &0 \\ …&… & \color{red}{c_{3}} &0 \\ 0&0 &0 &\color{red}{1} \end{bmatrix}

    tr(R) = 1 + 2cos\phi

    • 旋转矩阵为正交矩阵,因此矩阵R的逆矩阵就等于它的装置矩阵,此类变换的任意数量级联也同样成立。此外,R_{i}^{-1} = R_{i}(-\phi),也就是绕同一坐标轴相反方向旋转。

      绕一点旋转:某个物体绕z轴旋转\phi度,旋转中心是点p
      整个变换过程X可用下面的公式表示:

    X = T(p)R_{z}(\phi)T(-p)

    3 缩放变换

    • 缩放矩阵S(s) = S(s_{x}, s_{y}, s_{z})可以使物体分别绕x、y、z轴以因子s_{x}、s_{y}、s_{z}进行放大或缩小。

    S(s) = \begin{bmatrix} 5&0 &0 &0 \\ 0&5 &0 &0 \\ 0&0 &5 &0 \\ 0&0 &0 &1 \end{bmatrix} = \begin{bmatrix} 1&0 &0 &0 \\ 0&1 &0 &0 \\ 0&0 &1 &0 \\ 0&0 &0 &1/5 \end{bmatrix}

      如果对缩放矩阵s的一个或三个分量置负,就会产生一个反射矩阵(Reflective Matrix),或者镜像矩阵(Mirror Matrix)。如果其中两个缩放因子是-1,那么将会旋转180^{\circ},反射矩阵将改变顶点序列,导致不正确的光照效果和裁剪。
      判定矩阵是否为反射形式,只需计算该矩阵的左上部3*3矩阵行列式的值,如果该值为负,那么该矩阵为反射矩阵。

    相关文章

      网友评论

          本文标题:基本变换矩阵

          本文链接:https://www.haomeiwen.com/subject/qeffnctx.html