计算机图形学期末速通指南(2) 变换
变换的核心是找到x',y’和x,y之间的关系
二维变换
缩放变换
缩放变换是一种沿坐标轴对物体产生作用的变换
均匀缩放
例:将图片在x方向和y方向上分别缩小为原来的1/2
方程表示
矩阵表示
不均匀缩放
例:将图片在x方向缩小为原来的1/2,y方向上不变
矩阵表示
镜像变换
方程表示
矩阵表示
剪切变换
剪切变换是固定物体某一边,然后拉伸另外一边的变换
注意,如图可知:
变换后,y坐标依然保持不变,x轴上的点x坐标和y坐标都不变
设正方形图片边长1,则红线与蓝线的交点坐标,即图片左上顶点坐标(a,1),图片右上顶点坐标(a+1,1)
矩阵表示
方程表示
旋转变换
注意:
一般以坐标原点为旋转中心,逆时针为旋转方向
计算
方法:取2个特殊点计算出x',y',解出x',y'与x,y间的对应关系
矩阵表示
总结
以上几种变换都具有共同的特点
这样的变换称为线性变换
齐次坐标
为什么要引入齐次坐标?
之所以引入齐次坐标,是因为一种特殊的变换:平移变换
方程表示
平移变换的方程乍一看很容易理解,但是,仔细观察后发现,这个方程无法写成如上面几个变换那样的矩阵形式,而只能写成下图这样:
因此,平移操作不属于线性变换,而是特殊情况。
但是,人们并不希望平移成为一种特殊情况,而希望寻找一个统一的方法用以表示各类运算,由此便引入了齐次坐标这个概念。
概念
齐次坐标是将原本n维的向量用n + 1维向量表示。
在齐次坐标下,点扩展为,向量扩展为
为什么点和向量区别对待?
向量具有平移不变性,经过平移变换后,向量的方向和大小不变,位置改变。
这样设计满足一些向量和点的运算准确性
那么,点+点究竟是什么?
答案是,两点的中点。
仿射变换
仿射变换是指向量进行一次线性变换和一次平移变换的变换。仿射变换包括缩放变换、旋转变换、反射变换、错切变换以及平移变换等,直线经过仿射变换后还是直线,平行线经过仿射变换之后还是平行线。
规律:
最后一行永远为0 0 1,最后一列前两个数为平移的x和y坐标
齐次坐标例子
缩放变换
旋转变换
平移变换
其他二维变换
逆变换
一些复杂的变换可以由简单的变换组合而成
并且和简单变换的组合顺序有关
图2对应的矩阵乘法:
三维变换
仿射变换
先线性变换再平移