齐次坐标的理解

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重新表示为:

\[X = x/w \\ Y = y/w \]

例如,笛卡尔(1,2)中的一个点变成齐次(1,2,1)中的一个点。如果一个点(1,2)向无穷远处移动,它在笛卡尔坐标系中变成(∞,∞)。在齐次坐标系下它变成(1,2,0),因为(1/ 0,2 /0)≈(∞,∞)。注意我们可以不使用∞来表示无穷处的点。

3. 为什么叫齐次坐标?

如前所述,为了将齐次坐标(x, y, w)转换为笛卡尔坐标,我们只需将x和y除以w;

\[\begin{gathered} (x, y, w) \\ \text { Homogeneous } \end{gathered} \Leftrightarrow \begin{gathered} \quad\left(\frac{x}{w}, \frac{y}{w}\right) \\ \text { Cartesian } \end{gathered} \]

将齐次变换为笛卡尔,我们可以发现一个重要的事实。让我们看看下面的例子;

如你所见,点(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

posted @ 2021-06-06 10:41  MorStar  阅读(737)  评论(0编辑  收藏  举报