本文解释为何齐次坐标可用来实现平移
解释1:标准变换矩阵
齐次坐标的标准变换矩阵可写为[T(e1) T(e2) T(e3)]
T(e1)=[1 0 0]T
T(e2)=[0 1 0]T
T(e3)=[h k 1]T
可以看出,e1、e2在变换后都维持不变;而e3变换为[h k 1]T。
我们知道,矩阵与向量的乘法可看作以向量各元素为权对矩阵各列的线性组合。
用齐次坐标完成的平移变换矩阵就是将z向坐标(1)分别乘以h和k(加权)然后加到x方向和y方向上(线性组合)。
或者说,由于向量加法不是线性变换,所以我们需要额外的一维,利用这额外的一维,将“加法(非线性变换)”变换为“加权的线性组合(线性变换)”。
解释2:从二维到三维
我们已经知道,所有的矩阵变换都是线性变换,所以齐次坐标下的平移也是线性变换。
让我们从一维平移说起。为了实现一维平移,我们需要二维变换矩阵:
我们发现这实际上就是二维水平剪切的变换矩阵。将其效果写成向量乘法形式:
可以看出,二维剪切不改变某个点的y坐标,而将x坐标移动ky距离(x变换为x+ky)。当y=1时,x方向的平移距离就是k。这和二维剪切图形的直观效果是一致的。若将上述内容推广到更高维度,那就是N+1维的剪切在N维产生平移的效果。反过来就是,为了实现N维的平移,我们可以在N+1维对齐次坐标做剪切。