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}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值