齐次坐标的理解
1. 问题:两条平行线可以相交于一点
在欧几里德空间(几何)中,同一平面上的两条平行线不可能相交。
然而,在射影空间(projective space)里,两条平行线可以相交,例如:火车轨道随着我们的视线越来越窄,最后两条平行线在无穷远处交于一点。
欧几里得空间(或笛卡儿空间)很好地描述了我们的2D/3D几何,但它们不足以处理射影空间(projective space)(实际上,欧几里得几何是射影几何的子集)。2维笛卡尔坐标下可以表示为(x, y)。
如果这个点远到无穷呢?无穷远处的点是(∞,∞),它在欧几里德空间中变得毫无意义。平行线在射影空间中应无穷远处相交,但在欧几里得空间中不能相交。数学家们已经发现了解决这个问题的方法。
2. 解决方案:齐次坐标
由August Ferdinand Möbius引入的齐次坐标,使投影空间中的图形和几何计算成为可能。齐次坐标是用N+1个数表示N维坐标的一种方法。
要得到2D齐次坐标,我们只需在现有坐标中添加一个额外的变量w。因此,笛卡尔坐标系中的点(X, Y)就变成了齐次坐标系中的点(x, y, w)。笛卡尔坐标系中的X和Y用齐次坐标系中的x, y和w重新表示为:
例如,笛卡尔(1,2)中的一个点变成齐次(1,2,1)中的一个点。如果一个点(1,2)向无穷远处移动,它在笛卡尔坐标系中变成(∞,∞)。在齐次坐标系下它变成(1,2,0),因为(1/ 0,2 /0)≈(∞,∞)。注意我们可以不使用∞来表示无穷处的点。
3. 为什么叫齐次坐标?
如前所述,为了将齐次坐标(x, y, w)转换为笛卡尔坐标,我们只需将x和y除以w;
将齐次变换为笛卡尔,我们可以发现一个重要的事实。让我们看看下面的例子;
如你所见,点(1,2,3),(2,4,6)和(4,8,12)对应同一个欧几里德点(1/3,2/3)。任何标量的乘积,例如(1a, 2a, 3a)在欧几里德空间中与(1/3,2/3)相同。因此,这些点是“齐次的”,因为它们代表了欧几里得空间(或笛卡尔空间)中的同一点。换句话说,齐次坐标的比例是不变的。
4. 证明:两条平行线可以相交
考虑欧几里得空间中下列线性系统
我们知道上面的方程没有解因为C≠D。如果C = D,那么两条直线是相同的(重叠)。
我们重写射影空间的方程将x和y分别替换为x/w y/w
现在我们有一个解(x, y, 0)因为(C - D)w = 0,解为w = 0。因此,两条平行线相交于(x, y, 0)点,也就是无穷处。
齐次坐标在计算机图形学中是非常有用的基本概念,例如将3D场景投影到2D平面上。
Reference
http://www.songho.ca/math/homogeneous/homogeneous.html
https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/95228010