GAMES101笔记 01-基础变换矩阵总结
1 2D线性变换(2D Transformation)
1.1 缩放(Scale)
缩放变换是一种沿着坐标轴的变换,定义如下:
即除了$(0,0)^T$保持不变之外,其他所有点都变成$(S_xX,S_yY)^T$
1.2 切变(Shear)
切变是将物体的一边固定住,然后去拉另外一边,也就是
1.3 旋转(rotation)
此处的旋转是逆时针旋转,并且其旋转中心是原点,直接给出定义和推导过程
推导过程:
1.4 2维绕任意点旋转
例如我们绕旋转的点为$c$
- 将点$c$作Translate转移到原点
- 作旋转
- 使用Translate的逆矩阵将其转移回去
即$T(c) \cdot R(\alpha) \cdot T(-c)$
2 3D线性变换
2.1 3维缩放,切变和旋转
缩放还是和2D一个套路
切变也一样
再来到三维的旋转,有三个矩阵,分别对应绕x轴,y轴和z轴旋转,注意是右手系,绕z轴(x轴转向y轴),绕x轴(y轴转向z轴),绕y轴(z轴转向x轴)
由此可知,所有的旋转矩阵都是正交矩阵,即它们的逆矩阵也就是它们的转置矩阵
注意,我们此处的绕y旋转的旋转矩阵为什么是负号在左下角呢,用叉乘的性质就可以解释,比如$x \times y = z$,$y \times z = x$,$z \times x = y$,我们不难看出,像是一个$xyz$的循环,但是我们计算的时候都是先算$x$坐标再算$z$坐标,与叉乘的顺序相反了,所以是反的
3 仿射变换
最后只剩了一个位移,为了使位移的表示统一且方便,我们引入了齐次坐标,例如三维的齐次坐标矩阵为四维:
对vector的位移是毫无意义的,方向始终不会变
3.1 位移(translation)
对一个三维的点作位移变换:
参考文档:https://blog.csdn.net/qq_38065509/article/details/105156501
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 nico233's blog!