线性代数之齐次坐标

本文解释为何齐次坐标可用来实现平移

解释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维对齐次坐标做剪切。

原文地址:https://www.cnblogs.com/byeyear/p/5149696.html