当前位置:   article > 正文

GAMES101学习笔记(一)变换_games101笔记

games101笔记

 一、缩放变换(Scale)

        对于缩放变换,本质就是将向量的坐标缩放:

{x}'=s_{x}x

{y}'=s_{y}y

        写作矩阵形式:

\begin{bmatrix} {x}'\\ {y}' \end{bmatrix}=\begin{bmatrix} s_{x} &0 \\ 0&s_{y} \end{bmatrix}\begin{bmatrix} x\\ y \end{bmatrix}

        其中,\begin{bmatrix} s_{x} &0 \\ 0&s_{y} \end{bmatrix} 称为缩放矩阵

二、对称变换(Reflection)

        对于关于y轴对称的变换同样的有对称矩阵

\begin{bmatrix} -1 &0 \\ 0&1 \end{bmatrix}

三、切变变换(Shear)

        上图的变换可以表示为数学形式:

         \left\{\begin{matrix} {x}'=x+ay\\ {y}'=y \end{matrix}\right.

        矩阵形式:

\begin{bmatrix} {x}'\\ {y}' \end{bmatrix}=\begin{bmatrix} 1&a \\ 0&1 \end{bmatrix}\begin{bmatrix} x\\ y \end{bmatrix}

四、旋转变换(Rotate)

        当图形绕着原点逆时针转动 \theta 角度,原来的顶点坐标有:

\left ( 1,0 \right )\rightarrow \left ( cos\theta ,sin\theta \right )

\left ( 0,1 \right )\rightarrow \left ( -sin\theta ,cos\theta \right )

        可以得到旋转变换矩阵:

\begin{bmatrix} 1 &0 \\ 0& 1 \end{bmatrix}\begin{bmatrix} {x}'\\ {y}' \end{bmatrix}=\begin{bmatrix} cos\theta &-sin\theta \\ sin\theta&cos\theta \end{bmatrix}\begin{bmatrix} x\\y \end{bmatrix}

        本质上变换就是找一一对应的变换关系

五、线性变换(Linear Transforms)

        当变换满足:

\left\{\begin{matrix} {x}'=ax + by \\ {y}'=cx + dy \end{matrix}\right.

        则有变换矩阵:

\begin{bmatrix} {x}'\\ {y}' \end{bmatrix}=\begin{bmatrix} a &b \\ c & d \end{bmatrix}\begin{bmatrix} x\\ y \end{bmatrix}

        称为线性变换

六、齐次坐标

        为了让所有变换统一形式,所以引入齐次坐标

        将二维坐标添加一个维度:

二维的点:\left ( x,y,1 \right )

二维向量:\left ( x,y,0 \right )

        则对于平移变换有:

\begin{bmatrix} {x}'\\ {y}'\\ {w}' \end{bmatrix}=\begin{bmatrix} 1 & 0&t_{x} \\ 0 & 1 &t_{y} \\ 0 &0 & 1 \end{bmatrix}\begin{bmatrix} x\\ y\\ 1 \end{bmatrix}=\begin{bmatrix} x+t_{x}\\ y+t_{y}\\ 1 \end{bmatrix}

        另一角度来说,向量加向量等于向量,点减点等于向量,点加向量等于点

        如果一个点 \left ( x,y,w \right ) 表示一个二维点 \left ( \frac{x}{w} ,\frac{y}{w},1\right ) 其中 w\neq0 

七、逆变换

       当经过一个变换之后,想回到原状态所进行的变换称为逆变换

       一个变换的逆变换矩阵就是该变换的逆矩阵

八、变换组合

       当想进行一些列变换的组合,可以通过矩阵乘法的方式进行,例如,当想做一次旋转45度再向x轴平移一个单位,可以用如下方式得到变换后的坐标:

\begin{bmatrix} {x}'\\ {y}'\\ 1 \end{bmatrix}=\begin{bmatrix} 1 & 0 &1 \\ 0& 1 & 0\\ 0&0 & 1 \end{bmatrix}\begin{bmatrix} cos45^{\circ} & -sin45^{\circ} & 0\\ sin45^{\circ}& cos45^{\circ} & 0\\ 0&0 & 1 \end{bmatrix}\begin{bmatrix} x\\ y\\ 1 \end{bmatrix}

九、变换分解

        对于一个复杂变换可以看作是很多小变换的结合

十、类推到三维变换

        与二维同理:

三维的点:\left ( x,y,z,1 \right )

三维向量:\left ( x,y,z,0 \right )

        对于三维变换:

\begin{bmatrix} {x}'\\ {y}'\\ {z}'\\ 1 \end{bmatrix}=\begin{bmatrix} a & b & c& t_{x}\\ d & e & f& t_{y}\\ g & h & i & t_{z}\\ 0 &0 & 0& 1 \end{bmatrix}\begin{bmatrix} x\\ y\\ z\\ 1 \end{bmatrix}

        注:以上述矩阵进行的变换是先线性变换后平移变换

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/117260
推荐阅读
  

闽ICP备14008679号