複製鏈接
請複製以下鏈接發送給好友

齊次座標

鎖定
齊次座標就是將一個原本是n維的向量用一個n+1維向量來表示,是指一個用於投影幾何裏的座標系統,如同用於歐氏幾何裏的笛卡兒座標一般。
中文名
齊次座標
外文名
homogeneous coordinates
核    心
n維的向量用一個n+1維向量來表示
優    點
合併矩陣運算中的乘法和加法
所屬學科
拓撲學

齊次座標定義

射影空間的點P對應的等價類中每個(n+1)元組是P的齊次座標 [3] 

齊次座標相關信息

實投影平面可以看作是一個具有額外點的歐氏平面,這些點稱之為無窮遠點,並被認為是位於一條新的線上(該線稱之為無窮遠線)。每一個無窮遠點對應至一個方向(由一條線之斜率給出),可非正式地定義為一個點自原點朝該方向移動之極限。在歐氏平面裏的平行線可看成會在對應其共同方向之無窮遠點上相交。給定歐氏平面上的一點(x,y),對任意非零實數 Z,三元組(xZ,yZ,Z)即稱之為該點的齊次座標。依據定義,將齊次座標內的數值乘上同一個非零實數,可得到同一點的另一組齊次座標。例如,笛卡兒座標上的點 (1,2) 在齊次座標中即可標示成 (1,2,1) 或 (2,4,2)。原來的笛卡兒座標可透過將前兩個數值除以第三個數值取回。因此,與笛卡兒座標不同,一個點可以有無限多個齊次座標表示法。
一條通過原點(0, 0)的線之方程可寫作nx+my= 0,其中 n 及 m 不能同時為 0。以參數表示,則能寫成x=mt,y= −nt。令 Z=1/t,則線上的點之笛卡兒座標可寫作(m/Z, −n/Z)。在齊次座標下,則寫成(m, −n,Z)。當 t 趨向無限大,亦即點遠離原點時,Z 會趨近於 0,而該點的齊次座標則會變成(m, −n, 0)。因此,可定義(m, −n, 0)為對應nx+my= 0這條線之方向的無窮遠點之齊次座標。因為歐氏平面上的每條線都會與透過原點的某一條線平行,且因為平行線會有相同的無窮遠點,歐氏平面每條線上的無窮遠點都有其齊次座標。
概括來説:
  • 投影平面上的任何點都可以表示成一三元組(X,Y,Z),稱之為該點的'齊次座標或投影座標,其中 X、Y 及 Z 不全為 0。
  • 以齊次座標表表示的點,若該座標內的數值全乘上一相同非零實數,仍會表示該點。
  • 相反地,兩個齊次座標表示同一點,當且僅當其中一個齊次座標可由另一個齊次座標乘上一相同非零常數得取得。
  • 當 Z 不為 0,則該點表示歐氏平面上的該(X/Z,Y/Z)。
  • 當 Z 為 0,則該點表示一無窮遠點。
注意,三元組(0, 0, 0)不表示任何點。原點表示為(0, 0, 1)。

齊次座標符號

有些作者會使用不同的符號表示齊次座標,以與笛卡兒座標相區別,如以冒號代替逗號,以 (x:y:z) 代替(x,y,z),以強調該座標有着比例的性質。亦有以方括號代替括弧,以[x,y,z]來強調有多個座標表示同一個點。有些作者則會同時使用冒號與方括號,如 [x:y:z]。

齊次座標其他投影空間

齊次座標的數值若為實數,則會得出一般實投影空間內的一個點。不過,該數值可以為任意的體,特別是在復投影空間裏,使用的數值為複數。例如,復投影線在齊次座標中以兩個數值表示之,稱之為黎曼球面。其他的體,包括有限體,也都可以被使用。
用於投影空間的齊次座標亦可使用除環來建立。不過,在此情況下,必須小心考慮其乘法可能是不可交換的。

齊次座標重要性

《計算機圖形學(OpenGL版)》的作者F.S. Hill Jr.曾説過一句話:
“齊次座標表示是計算機圖形學的重要手段之一,它既能夠用來明確區分向量和點,同時也更易用於進行仿射(線性)幾何變換。”
於是我們知道,其重要性,主要有二,其一是區分向量和點,其二是易於進行仿射變化(Affine Transformation) [1] 

齊次座標應用

齊次座標在電腦圖形內無處不在,因為該座標允許平移、旋轉、縮放透視投影等可表示為矩陣與向量相乘的一般向量運算。依據鏈式法則,任何此類運算的序列均可相乘為單一個矩陣,從而實現簡單且有效之處理。與此相反,若使用笛卡兒座標,平移及透視投影不能表示成矩陣相乘,雖然其他的運算可以。OpenGL及Direct3D圖形卡均利用齊次座標的優點,以具4個暫存器的向量處理器來實作頂點着色引擎
例如,在透視投影裏,空間中的位置與該位置至稱為“投影中心”的固定點間的線相關聯。該點可透過找出平面與該線之相交點被映射至該平面上。這是三維物件如何呈現於眼上的一精確表示。在最簡單的情況下,投影中心會是圓點,而點會映射至平面z= 1上,如同在笛卡兒座標上時一樣。對空間內的一點(x,y,z),其線與平面相交的點為(x/z,y/z, 1)。刪掉顯得多餘的 z 座標,即變成(x,y,z)。在齊次座標裏,點(x,y,z)表示為(xw,yw,zw,w),且該點映射至平面上的點表示為(xw,yw,zw),因此投影可以以矩陣形成表示為
表示其他幾何變轉的矩陣可與此一矩陣透過矩陣乘法結合。其結果是,任何空間的透視投影都能被表示為單一個矩陣 [2] 

齊次座標示例

例如,二維點(x,y)的齊次座標表示為(hx,hy,h)。由此可以看出,一個向量的齊次表示是不唯一的,齊次座標的h取不同的值都表示的是同一個點,比如齊次座標(8,4,2)、(4,2,1)表示的都是二維點(4,2)。
給出點的齊次表達式[X Y H],就可求得其二維笛卡爾座標,即
[X Y H]→
= [x y 1], 這個過程稱為歸一化處理。
在幾何意義上,相當於把發生在三維空間的變換限制在H=1的平面內。
那麼引進齊次座標有什麼必要,它有什麼優點呢?
許多圖形應用涉及到幾何變換,主要包括平移、旋轉、縮放。以矩陣表達式來計算這些變換時,平移是矩陣相加,旋轉和縮放則是矩陣相乘,綜合起來可以表示為p' = m1*p+ m2(注:因為習慣的原因,實際使用時一般使用變化矩陣左乘向量)(m1旋轉縮放矩陣, m2為平移矩陣, p為原向量 ,p'為變換後的向量)。引入齊次座標的目的主要是合併矩陣運算中的乘法和加法,表示為p' = p*M的形式。即它提供了用矩陣運算把二維、三維甚至高維空間中的一個點集從一個座標系變換到另一個座標系的有效方法。
其次,它可以表示無窮遠的點。n+1維的齊次座標中如果h=0,實際上就表示了n維空間的一個無窮遠點。對於齊次座標(a,b,h),保持a,b不變,|V|=(x1*x1,y1*y1,z1*z1)^1/2的過程就表示了標準座標系中的一個點沿直線 ax-by=0 逐漸走向無窮遠處的過程。
參考資料