计算机图形学GAMES101(二)变换
本文最后更新于 2024年5月26日 下午
本节涉及的内容
1、2D变换:旋转、缩放、切变
2、齐次坐标
3、变换的组合
变换一般使用矩阵来表示
变换
- 缩放变换
x’ y’代表变换后的坐标,s代表缩放的比例 ,x y代表原来的坐标
- 镜像翻转
- 切变变换
- 旋转变换
以上的变换都属于线性变换,都可以使用矩阵的乘法进行表示,形式如下
一旦涉及到平移变换就没有办法使用矩阵的乘法来表示了(平移变换不是线性变换)
为了使得平移变换也能使用矩阵乘法的形式来表示,我们引入了齐次坐标
二维空间的点写成
二维空间的向量写成
即使用n+1维坐标来表示n维空间,最后一维等于1代表点 ,等于0代表向量
使用齐次坐标的目的是为了平移变换也可以使用矩阵乘法的形式来表示,即
tx表示沿x轴方向的平移量
ty表示沿y轴方向的平移量
引入其次坐标后的计算
我们知道齐次坐标最后一维为0代表向量,为1代表点,那么齐次坐标怎么运算呢?
第一种形式,向量+向量=向量 。即(x1,y1,0)+(x2,y2,0)=(x1+x2,y1+y2,0+0=0)。最后一维还是0,表示向量。符合数学中的运算法则。
第二种形式,点-点=向量。即(x1,y1,1)-(x2,y2,1)=(x1-x2,y1-y2,1-1=0)。最后一维是0,表示向量。符合数学中的运算法则。
第三种形式,点+向量=点。即(x1,y1,1)+(x2,y2,0)=(x1+x2,y1+y2,1+0=1)。最后一维是1,表示点。该运算代表(x1,y1)这个点沿着向量(x2,y2)运动到了(x1+x2,y1+y2)这个坐标。
第四种形式,(x1,y1,1)+(x2,y2,1)=(x1+x2,y1+y2,1+1=2)其代表的点为(x/w,y/w,1)。如图:
仿射变换
类似于下面这种格式的变换叫做放射变换
写成矩阵乘法的形式
各种变换的矩阵形式
scale:缩放
rotation:旋转
translation:平移
逆变换
可以使得经过变换后的图形变为原来的图形的变换叫逆变换
逆变换在数学中体现为逆矩阵
变换的分解
如何经过变换得到右边的图形?
结果:(T表示平移,R表示按逆时针方向旋转)
可以看出:
这是因为矩阵乘法是不支持交换律的
所以该图形是经过了旋转45°后向右平移一个单位得到的
在书写时要写成:(矩阵从右往左运算)
变换的组合
当我们进行多次变换时,变换矩阵为A1,A2,A3,A4,An ,我们可以将这些矩阵都乘起来,得到一个最终的变换矩阵,然后再去乘以(x,y,1)