问题:两条平行直线可以相交
在欧氏几何中,同一平面的两条直线是不可能相交的,这是大家都熟悉的常识。
但是,在一个透视空间中,这是不正确的。
上图的铁路随着距离我们的视线越来越远,它们变得越狭长。最终,视线中的两条平行线在无限远处的一点相交了。
欧式几何非常适合描述我们的2D/3D几何空间,但是不足以来描述透视空间了。(实际上,欧式几何是透视几何的子集)。在笛卡尔坐标系中,一个二维坐标可以用 (x,y) 标志。
那么当点位于无线远的位置该怎么办?无限远处的点可以是 (∞,∞) ,这在欧式几何空间中是没有意义的。在透视空间中,平行的直线在无限远处会相交,这在欧式及几何中是不可能的。数学家发现了一种解决这个问题的方法。
齐次坐标系
奥古斯特 费迪南德 莫比乌斯,发明了齐次坐标系,使得在透视空间中对图形和几何的计算成为了可能。
齐次裁剪空间使用N+1个数字描述N维空间的方法。
对于二维的齐次坐标系,我们使用额外的
w
值加入到我们现存的坐标系中。这样,笛卡尔坐标系中的
(X,Y)
在齐次坐标系下可以表示为
(x,y,w)
,其中,
X,Y,x,y,w
满足下列公式:
举例来说,笛卡尔坐标系下的
(1,2)
在齐次坐标系下表示为
(1,2,1)
。如果点
(1,2)
移向了无穷远远处,在笛卡尔坐标系下是
(∞,∞)
,在齐次坐标系下是
(1,2,0)
,这是因为:
为何命名为齐次的?
正如之前所提到的,为了将齐次坐标系
(x,y,w)
转换为笛卡尔坐标系,我们仅仅用
w
去除
从这个过程中我们可以发现一个重要的事实,让我们好好观察接下来的例子。
正如你所见, (1,2,3),(2,4,6),(3,6,9) 对应同一个笛卡尔系的坐标,任意形如 (1a,2a,3a) 的齐次坐标系点都对应同一个笛卡尔系坐标。因此,我们说这些点是“齐次”的,换句话说,齐次坐标系具有锁房不变性(scale invariant)。
证明 :平行线可以相交
考虑下述的欧式空间的线性空间。
显然,因为 C≠D ,所以上述方程无解。
又如果 C=D ,那么上述两个方程是等价的。
让我们分别用
x/w,y/w
来代替
x,y
,重写这个方程组。
现在我们有解 (x,y,0) ,因为 (C−D)w=0 ,所以 w=0 。因此,两条平行线在 (x,y,0) 相交,一个无穷远处的点。
齐次坐标系非常有用,是计算机图形学的基础概念,在将3D场景投影到2D平面时经常用到。