問題:兩條平行線可以相交於一點
在歐氏空間(幾何),同一平面的兩條平行線不能相交,或永遠不能相遇。這是我們都熟悉的常識。
然而,在透視空間裏面,兩條平行線可以相交,例如:在下圖中,火車軌道離我們的視線越遠,變得越窄。最後,兩條平行線相交於地平線處,即無窮遠處的一點。
歐氏空間(或笛卡爾空間)描述 2D / 3D 幾何非常適合,但是這種方法卻不適合處理透視空間的問題(實際上,歐氏幾何是透視幾何的一個子集合),2D 點的笛卡爾座標可以表示爲 。
如果一個點在無窮遠處,這個點的座標將會是 ,在歐氏空間,這變得沒有意義。平行線在透視空間的無窮遠處交於一點,但是在歐氏空間卻不能。數學家發現了一種方法來解決這個問題。
方法:齊次座標
August Ferdinand Möbius 引入了齊次座標,使得在透視空間進行圖形和幾何計算成爲可能。齊次座標是一種使用N+1個數來代表N維座標的方法。
爲了構建 2D 齊次座標,我們可以在現有笛卡爾座標基礎上,加一個額外的變量 。因此,笛卡爾座標系內的點 在齊次座標系裏面變成了 ,並且有
比如,笛卡爾座標系下的點(1,2)的齊次座標可以表示爲(1,2,1)。如果點(1,2)移動到無限遠處,在笛卡爾座標下它變爲 ,然後它的齊次座標表示爲(1,2,0),因爲 。注意,我們可以不用 “ “ 來表示一個無窮遠處的點了。
爲什麼叫齊次座標?
如上所述,爲了將齊次座標 轉化爲笛卡爾座標 ,只需將 和 除以 即可:
轉化齊次座標到笛卡爾座標的過程中,我們有一個重要發現,請看下面的例子:
你會發現點 (1, 2, 3) , (2, 4, 6) 和 (4, 8, 12) 對應同一個歐氏空間點 (1/3, 2/3)。在歐氏空間中,任何標量乘積,如(1a, 2a, 3a) 對應同一個點 (1/3, 2/3) 。因此,這些點是“齊次的” (譯者注:含有“同類”的意思),因爲他們表示歐氏空間(或笛卡爾空間)裏面的同一個點。換句話說,齊次座標有尺度不變性。
證明:兩條直線可以相交
考慮歐氏空間中的線性方程組:
我們知道如果C ≠ D,上述方程組無解。如果C=D,兩條直線爲同一條直線(重疊)。我們在透視空間重寫上述方程式,用齊次座標 , 代替 , ,
現在我們有一個解 ,因爲 ,所以 。因此,兩條直線相交於 ,這個點在無窮遠處。
在諸如將 3D 場景投影到 2D 平面的過程中,齊次座標是一個非常有用和基礎的計算機圖形學概念。