在用矩阵表述变换与齐次坐标一文中我们了解了旋转、平移的矩阵表述。在这里,我们试着总结一下仿射空间中其他几种映射的矩阵表述。
为了方便观察,在这里我们仅讨论二维空间中的基本变换。对于每一个变换,我们采取方程组,坐标系图,矩阵分别描述,便于理解。
一、旋转
旋转在几何和线性代数中是描述刚体围绕一个固定点的运动的在平面或空间中的变换。
需要注意,在这里我们只讨论比较常用的“坐标系保持不动,向量绕坐标轴旋转”观点。
对于给定点,计算其绕轴逆时针旋转后新的坐标。如下图所示:
由于涉及到角度,我们可以把笛卡尔坐标系转换为极坐标系,设为极半径。则点坐标为
相应的,点坐标为
由方程组(1)、(2)可知,关于, 的方程为:
用4x4矩阵可以表述为:
即,三维旋转变换矩阵为:
同样的方法,我们可以得出下面几种常见的旋转变换矩阵:
二、缩放
缩放在欧式空间中是描述延某一方向或所有方向按照一定缩放因子放大或者缩小物体的线性变换。
我们通常讨论物体延一个或多个坐标轴方向的缩放,每一个坐标轴方向都有其单独的缩放因子。
当所有坐标轴方向的缩放因子一样时,此时的缩放叫做均匀缩放或位似变换。均匀缩放的结果在几何意义上相似于原始物体。
当各坐标轴方向的缩放因子不同时,缩放后结果的形状可能发生变化,此时的缩放被叫做方向缩放。
对于给定物体中某一点,计算其均匀缩放(时为放大, 时为缩小)后的结果。
在这里,我们讨论的是三维空间的均匀缩放。但是为了便于观察,我使用了二维平面的均匀缩放的图示。
如图所示,我们已知点的坐标,则坐标可表示为
用4x4矩阵表示为
即,三维缩放变换矩阵为:
同样的方法,我们可以得出下面几种常见的缩放变换矩阵(缩放因子):
三、平移
平移在仿射空间中指物体延同一方向移动相同距离的变换。
平移是一种等距同构的变换,它可以被视为某一向量施加于物体每一点的结果。即,设是已知向量,为空间中一点,则平移
对同一物体的多次连续平移,其结果可用一次平移表示,它符合向量的加法法则。即
对于给定点,计算施加向量的平移结果。
同样,为了便于观察,我们使用二维空间的平移图示。如下图:
如图所示,我们已知点的坐标,则点坐标可表示为
用4x4矩阵表示为
即平移变换矩阵为
四、反射
反射在仿射空间中指把物体变换成它的镜像的映射。
需要注意,这里的反射与渲染阶段的光线“反射”不是同一个概念。这里是指数学意义上的反射。
对于给定点,计算其针对平面的镜像结果。如下图所示:
由上图可以很容易得到,关于,,的方程组
用4x4矩阵表示为
即针对平面的反射映射矩阵为
同样可以得出以下一些常见的反射变换矩阵
五、投影
投影是指一个从向量空间映射到它自身的线性变换。
投影是生活中“平行投影”概念的形式化和一般化。例如,在现实生活中,阳光照射物体在地面留下的影子。我们假设阳光是沿着同一方向(平行且垂直于地面的)照射物体,地面是严格的平面。那么,这就是投影最直观的例子。
对于给定点,计算其在平面上的投影点。如下图:
根据上图,可得关于,,的方程组:
用4x4矩阵表述为
即某点在平面上的投影变换矩阵为
类似的,我们可以得到如下常见的投影矩阵
六、错切
错切是在某方向上,按照一定的比例(错切因子)对图形的每个点平移得到的平面图形。移动的距离与该点到平行于该方向的某一直线的有向距离成正比。
如上图所示,直线是直线在平行于X轴方向上绕Z轴的错切。
此时,点经过错切的结果点关于,,的方程组为
用4x4矩阵表述为
即水平方向(平行于X轴方向)上的错切变换矩阵为
相应的,我们可以算出一下几种常见的错切变换矩阵(为错切因子):
七、总结
上面我们已经了解了反射空间几种基本变换的矩阵表述。下面我们来重新整理一下,首先看如下适用于列向量的4x4矩阵。
我们可以很容易地发现,对于矩阵A
元素与线性变换有关;
元素与仿射变换有关。
那么,元素有什么作用呢?
其实,这三个元素与透视投影变换有关。用矩阵表述变换是不是非常神奇?