为什么要引入齐次坐标系?

问题: 两条平行线可以相交。

在欧几里德空间(几何学)中,在同一平面上的两条平行线不可能相交,或永远不会相遇。 这是一个常识,每个人都熟悉。

然而,在投影空间中这不是真的,例如,在下面的图中铁路轨道离眼睛远的地方变窄了。 最后,两条平行的轨道在地平线处相遇,交点在无穷远处。

欧几里德空间(或笛卡尔空间)可以很好的描述我们的2D/3D几何,但是他们不能满足对投影空间的处理(实际上,欧几里德几何是投影几何的一个子集)。一个2D点的笛卡尔坐标可以表示为$(x, y)$。

如果这点移动到无穷呢?可以这样表示$(\infty, \infty)$,这样在欧几里德空间它将变的没有意义。 在投影空间两条平行线应该在无穷远处相遇。数学家已经发现了一种解决这个问题的方法。

解决方法:齐次坐标

齐次坐标使在投影空间中进行图形和集合的计算成为可能。齐次坐标是一种用$N + 1$个数字表示$N$维坐标的方法。

为了作成二维齐次坐标,我们简单的添加一个额外的变量$w$到已有的坐标中。 因此,在笛卡尔坐标系中的一个点$(X, Y)$变成齐次坐标系中的点$(x, y, w)$。并且在笛卡尔坐标系中的$X$和$Y$可以用在齐次坐标系中的$x$,$y$和$w$重新表示为:

举个例子,在笛卡尔坐标系中点$(1, 2)$,在齐次坐标系中变成$(1, 2, 1)$。在笛卡尔坐标系如果点$(1, 2)$移动到无穷远处,就变成$(\infty, \infty)$, 而在齐次坐标系中变成$(1, 2, 0)$,这是因为 $(\frac{1}{0}, \frac{2}{0}) = (\infty, \infty)$。需要注意的是我们可以不使用$\infty$表示一个无穷远处的点。

为什么叫作齐次?

正如前面提到过的,为了将齐次坐标$(x,y,w)$转变到笛卡儿坐标,我们简单地用$w$分别除以$x$和$y$:

转变将齐次坐标到笛卡儿坐标,我们发现一个重要的事实。让我们看下面的例子:

就像你看到的,点$(1, 2, 3)$,$(2, 4, 6)$和$(4, 8, 12)$对应相同的欧几里德点$(\frac{1}{3}, \frac{2}{3})$。乘以任意标量的$(1a, 2a, 3a)$是欧几里德空间中的同一点$(\frac{1}{3}, \frac{2}{3})$。因此这些点是齐次的因为它们代表欧几里德空间(或笛卡尔空间)中的同一点。换句话说,齐次坐标具有标量不变性。

证明:两条平行线可以相交

在欧几里得空间考虑下面的线性系统:

当$C \neq D$时,我们知道上面的方程组是无解的。 如果$C = D$,两条线是同一个(重合)。

让我们为投影空间重写这个方程组,分别替换$x$和$y$为$\frac{y}{w}$和$\frac{y}{w}$。

现在,我们有一个解$(x, y, 0)$,因为$(C - D)w = 0$,所以$(w = 0)$。 因此两个平行线在$(x, y, 0)$处相交,该点在无穷远处。

在计算机图像中,齐次坐标是非常有用的,是基础概念。例如,投影3D场景到2D平面。

参考文档