关于齐次坐标的理解记录
齊次坐標(homogeneous coordinates)
問題: 兩條平行線會相交
鐵軌在無限遠處相交于一點
在歐幾里得幾何空間里,同一平面上的兩條平行線永遠都不會相交。但是在投影空間中,如上圖中的兩條鐵軌在地平線處卻是會相交的,因為在無限遠處它們看起來相交于一點
歐幾里德空間(或笛卡爾空間)很好地描述了我們的二維/三維幾何,但它們不足以處理射影空間(實際上,歐幾里德幾何是射影幾何的一個子集)
二維點的笛卡爾坐標可以表示為(x,y),如果這一點離無窮遠呢?無窮遠點是(∞,∞),它在歐幾里德空間中變得毫無意義
投影空間里的兩條平行線會在無限遠處相交于一點,但笛卡爾空間里面無法搞定這個問題(因為無限遠處的點在笛卡爾空間里是沒有意義的),因此數學家想出齊次坐標這個點子來了
解決辦法:齊次坐標
由 August Ferdinand M?bius 提出的齊次坐標(Homogeneous coordinates)讓我們能夠在投影空間里進行圖像和幾何處理,齊次坐標用 N + 1個分量來描述 N 維坐標
比如,2D 齊次坐標是在笛卡爾坐標(X, Y)的基礎上增加一個新分量 w,變成(x, y, w),其中笛卡爾坐標系中的大X,Y 與齊次坐標中的小x,y有如下對應關系:
X = x/w
Y = y/w
笛卡爾坐標中的點 (1, 2) 在齊次坐標中就是 (1, 2, 1) 。如果這點移動到無限遠(∞,∞)處,在齊次坐標中就是 (1, 2, 0) ,因為 (1/0, 2/0) ≈ (∞,∞)
這樣我們就避免了用沒意義的"∞" 來描述無限遠處的點
為什么叫齊次坐標?
如前所述,為了將齊次坐標(x,y,w)轉換成笛卡爾坐標,我們只需將x和y除以w:
把齊次變換成笛卡爾坐標,我們可以發現一個重要的事實。讓我們看看下面的例子:
上圖中,點 (1, 2, 3), (2, 4, 6) 和 (4, 8, 12) 對應笛卡爾坐標中的同一點 (1/3, 2/3)。 任意標量積 (1a, 2a, 3a) 始終對應于笛卡爾坐標中的同一點 (1/3, 2/3)。因此這些點是“齊次”的,因為他們始終對應于笛卡爾坐標中的同一點。換句話說,齊次坐標描述尺度不變性(scale invariant)
證明: 兩平行線可以相交
笛卡爾坐標系中,對于如下兩個直線方程:
如果 C ≠ D,以上方程組無解;如果 C = D,那這兩條線就是同一條線(重合)了
下面我們分別用 x/w, y/w 代替 x, y 放到投影空間里來求解:
我們可以得到 (C-D)w=0,因為 C ≠ D,所以 w = 0。方程組的解為(x,y,0)
因此,兩條平行線在(x,y,0)處相交,即無窮遠點
齊次坐標是計算機圖形學中非常有用和基本的概念,例如將三維場景投影到二維平面上
原文鏈接
概括來說:
- 投影平面上的任何點都可以表示成一三元組 (X, Y, Z),稱之為該點的齊次坐標或投影坐標,其中 X、Y 及 Z 不全為 0
- 以齊次坐標表表示的點,若該坐標內的數值全乘上一相同非零實數,仍會表示該點
- 相反地,兩個齊次坐標表示同一點,當且僅當其中一個齊次坐標可由另一個齊次坐標乘上一相同非零常數得取得
- 當 Z 不為 0,則該點表示歐氏平面上的該 (X/Z, Y/Z)
- 當 Z 為 0,則該點表示一無窮遠點
三元組 (0, 0, 0) 不表示任何點,原點表示為 (0, 0, 1)
我的小站、Github、CSDN
總結
以上是生活随笔為你收集整理的关于齐次坐标的理解记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows10 下 用图片手把手教你
- 下一篇: Github 个人首页档案资料卡 REA