齊次座標系

問題:兩條平行線可以相交於一點

在歐氏空間(幾何),同一平面的兩條平行線不能相交,或永遠不能相遇。這是我們都熟悉的常識。

然而,在透視空間裏面,兩條平行線可以相交,例如:在下圖中,火車軌道離我們的視線越遠,變得越窄。最後,兩條平行線相交於地平線處,即無窮遠處的一點。

railroad.jpg

歐氏空間(或笛卡爾空間)描述 2D / 3D 幾何非常適合,但是這種方法卻不適合處理透視空間的問題(實際上,歐氏幾何是透視幾何的一個子集合),2D 點的笛卡爾座標可以表示爲(x,y)

如果一個點在無窮遠處,這個點的座標將會是(,) ,在歐氏空間,這變得沒有意義。平行線在透視空間的無窮遠處交於一點,但是在歐氏空間卻不能。數學家發現了一種方法來解決這個問題。


方法:齊次座標

August Ferdinand Möbius 引入了齊次座標,使得在透視空間進行圖形和幾何計算成爲可能。齊次座標是一種使用N+1個數來代表N維座標的方法。

爲了構建 2D 齊次座標,我們可以在現有笛卡爾座標基礎上,加一個額外的變量 w 。因此,笛卡爾座標系內的點(X,Y) 在齊次座標系裏面變成了 (x,y,z) ,並且有

{X=x/wY=y/w

比如,笛卡爾座標系下的點(1,2)的齊次座標可以表示爲(1,2,1)。如果點(1,2)移動到無限遠處,在笛卡爾座標下它變爲 (,) ,然後它的齊次座標表示爲(1,2,0),因爲 (1/0,2/0)(,) 。注意,我們可以不用 “ “ 來表示一個無窮遠處的點了。

爲什麼叫齊次座標?

如上所述,爲了將齊次座標 (x,y,z) 轉化爲笛卡爾座標(X,Y) ,只需將 xy 除以 w 即可:

(x,y,w)Homogeneous(xw,yw)Cartesian

轉化齊次座標到笛卡爾座標的過程中,我們有一個重要發現,請看下面的例子:
HomogeneousCartesian(1,2,3)(13,23)(2,4,6)(26,46)=(13,23)(4,8,12)(412,812)=(13,23)(1a,2a,3a)(1a3a,2a3a)=(13,23)

你會發現點 (1, 2, 3) , (2, 4, 6) 和 (4, 8, 12) 對應同一個歐氏空間點 (1/3, 2/3)。在歐氏空間中,任何標量乘積,如(1a, 2a, 3a) 對應同一個點 (1/3, 2/3) 。因此,這些點是“齊次的” (譯者注:含有“同類”的意思),因爲他們表示歐氏空間(或笛卡爾空間)裏面的同一個點。換句話說,齊次座標有尺度不變性。

證明:兩條直線可以相交

考慮歐氏空間中的線性方程組:

{Ax+By+C=0Ax+By+D=0

我們知道如果C ≠ D,上述方程組無解。如果C=D,兩條直線爲同一條直線(重疊)。我們在透視空間重寫上述方程式,用齊次座標 x/w , y/w 代替x , y ,

{Axw+Byw+C=0Axw+Byw+D=0{Ax+By+Cw=0Ax+By+Dw=0

現在我們有一個解(x,y,0) ,因爲 (CD)w=0 ,所以 w=0 。因此,兩條直線相交於(x,y,0) ,這個點在無窮遠處。

在諸如將 3D 場景投影到 2D 平面的過程中,齊次座標是一個非常有用和基礎的計算機圖形學概念。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章