3.1 为什么要学变换
相机移动、动画效果等都是由变换组合得到的。
有模型变换Model与视图变换View
3.1 2D线性变换(旋转、缩放、切片)
将矩阵与变换联系起来。
(1)设置放缩倍数。
(2)设置反转(对称)。
(3)设置错切。发现Y坐标都不变,X坐标变,且变的程度与ay成正比。
当在(a,1)坐标时,变换是x' = x + x * a * 1;
即在a x' = x + x * ay;
关键在于找到变换前后的关系。
shear变换直观理解就是把物体一边固定,然后拉另外一边。
(4)旋转。找特殊点即可,正好是选取的两个点的x y坐标形成旋转矩阵。
旋转矩阵的逆 == 旋转矩阵的转置
旋转矩阵的参数推导。
3.2 齐次坐标
为了平移变换也使用矩阵变换(线性变换),不要让平移成为特例,引出齐次坐标。
原本平移需要使用加法。
想将所有的变换统一。需要加的内容放在最后一列 * 1。
向量加0是向量具有平移不变性,平移后仍然是原来的向量。
仿射变换都可以写成齐次坐标的形式
缩放、旋转、平移矩阵
逆变换就是乘以逆矩阵,能变回原来的矩阵。
3.3 变换组合形成新的变换
(0,0)原点,先平移再旋转与先旋转再平移得到的结果是不一样的。
第二个变换矩阵左乘。
变换可以组合,也可以分解。
如果不绕原点旋转,而是绕任意点旋转。
可以先全体平移到原点,再旋转,再平移回原来位置。
3.4 3D线性变换
3D坐标中的旋转、平移也很类似2D。
齐次坐标中,是先线性变换再平移的。
仿射变换 = 线性变换 + 平移。