基本变换矩阵

2019-12-13  本文已影响0人  sakura_1

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

1 平移变换

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}

2 旋转矩阵

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}

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

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

3 缩放变换

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矩阵行列式的值,如果该值为负,那么该矩阵为反射矩阵。

上一篇下一篇

猜你喜欢

热点阅读