xyz座標轉換ybc 齊次座標理解

2021-10-14 12:16:36 字數 2545 閱讀 3486

一直對齊次座標這個概念的理解不夠徹底,只見大部分的書中說道「齊次座標在仿射變換中非常的方便」,然後就沒有了後文,今天在乙個叫做「三百年 重生」的部落格上看到一篇關於透視投影變換的**的文章,其中有對齊次座標有非常精闢的說明,特別是針對這樣一句話進行了有力的證明:「齊次座標表示是計算機圖形學的重要手段之一,它既能夠用來明確區分向量和點,同時也更易用於進行仿射(線性)幾何變換。」—— f.s. hill, jr。

由於作者對齊次座標真的解釋的不錯,我就原封不動的摘抄過來:

對於乙個向量v以及基oabc,可以找到一組座標(v1,v2,v3),使得v= v1a+ v2b +v3c (1)

而對於乙個點p,則可以找到一組座標(p1,p2,p3),使得po= p1a +p2b+ p3c (2),

從上面對向量和點的表達,我們可以看出為了在座標系中表示乙個點(如p),我們把點的位置看作是對這個基的原點o所進行的乙個位移,即乙個向量——p – o(有的書中把這樣的向量叫做位置向量——起始於座標原點的特殊向量),我們在表達這個向量的同時用等價的方式表達出了點p:p=o+ p1a +p2b+ p3c (3)

(1)(3)是座標系下表達乙個向量和點的不同表達方式。這裡可以看出,雖然都是用代數分量的形式表達向量和點,但表達乙個點比乙個向量需要額外的資訊。如果我寫出乙個代數分量表達(1, 4, 7),誰知道它是個向量還是個點!

我們現在把(1)(3)寫成矩陣的形式:v = (v1 v2 v3 0) x (a b c o)

p = (p1 p2 p3 1) x (a b c o),這裡(a,b,c,o)是座標基矩陣,右邊的列向量分別是向量v和點p在基下的座標。這樣,向量和點在同乙個基下就有了不同的表達:3d向量的第4個代數分量是0,而3d點的第4個代數分量是1。像這種這種用4個代數分量表示3d幾何概念的方式是一種齊次座標表示。

這樣,上面的(1, 4, 7)如果寫成(1,4,7,0),它就是個向量;如果是(1,4,7,1),它就是個點。下面是如何在普通座標(ordinary coordinate)和齊次座標(homogeneous coordinate)之間進行轉換:

(1)從普通座標轉換成齊次座標時

如果(x,y,z)是個點,則變為(x,y,z,1);

如果(x,y,z)是個向量,則變為(x,y,z,0)

(2)從齊次座標轉換成普通座標時

如果是(x,y,z,1),則知道它是個點,變成(x,y,z);

如果是(x,y,z,0),則知道它是個向量,仍然變成(x,y,z)

以上是通過齊次座標來區分向量和點的方式。從中可以思考得知,對於平移t、旋轉r、縮放s這3個最常見的仿射變換,平移變換只對於點才有意義,因為普通向量沒有位置概念,只有大小和方向.

而旋轉和縮放對於向量和點都有意義,你可以用類似上面齊次表示來檢測。從中可以看出,齊次座標用於仿射變換非常方便。

此外,對於乙個普通座標的點p=(px, py, pz),有對應的一族齊次座標(wpx, wpy, wpz, w),其中w不等於零。比如,p(1, 4, 7)的齊次座標有(1, 4, 7, 1)、(2, 8, 14, 2)、(-0.1, -0.4, -0.7, -0.1)等等。因此,如果把乙個點從普通座標變成齊次座標,給x,y,z乘上同乙個非零數w,然後增加第4個分量w;如果把乙個齊次座標轉換成普通座標,把前三個座標同時除以第4個座標,然後去掉第4個分量。

由於齊次座標使用了4個分量來表達3d概念,使得平移變換可以使用矩陣進行,從而如f.s. hill, jr所說,仿射(線性)變換的進行更加方便。由於圖形硬體已經普遍地支援齊次座標與矩陣乘法,因此更加促進了齊次座標使用,使得它似乎成為圖形學中的乙個標準。

所謂齊次座標就是將乙個原本是n維的向量用乙個n+1維向量來表示。

在空間直角座標系中,任意一點可用乙個三維座標矩陣[x y z]表示。如果將該點用乙個四維座標的矩陣[hx hy hz h]表示時,則稱為齊次座標表示方法。在齊次座標中,最後一維座標h稱為比例因子。

齊次點具有下列幾個性質:

1)如果實數a非零,則(x, y, x, w)和(ax, ay, az, aw)表示同乙個點,類似於x/y = (ax)/( ay)。

2)三維空間點(x, y, z)的齊次點座標為(x, y, z, 1.0),二維平面點(x,y)的齊次座標為(x, y, 0.0, 1.0)。

3)當w不為零時,齊次點座標(x, y, z, w)即三維空間點座標(x/w, y/w, z/w);當w為零時,齊次點(x, y, z, 0.0)表示此點位於某方向的無窮遠處。

那麼引進齊次座標有什麼必要,它有什麼優點呢?

1.它提供了用矩陣運算把二維、三維甚至高維空間中的乙個點集從乙個座標系變換到另乙個座標系的有效方法。

2.它可以表示無窮遠的點。n+1維的齊次座標中如果h=0,實際上就表示了n維空間的乙個無窮遠點。對於齊次座標[a,b,h],保持a,b不變, 點沿直線 ax+by=0 逐漸走向無窮遠處的過程。

齊次座標的理解

一直對齊次座標這個概念的理解不夠徹底,只見大部分的書中說道 齊次座標在仿射變換中非常的方便 然後就沒有了後文,今天在乙個叫做 三百年 重生 的部落格上看到一篇關於透視投影變換的 的文章,其中有對齊次座標有非常精闢的說明,特別是針對這樣一句話進行了有力的證明 齊次座標表示是計算機圖形學的重要手段之一,...

齊次座標的理解

一直對齊次座標這個概念的理解不夠徹底,只見大部分的書中說道 齊次座標在仿射變換中非常的方便 然後就沒有了後文,今天在乙個叫做 三百年 重生 的部落格上看到一篇關於透視投影變換的 的文章,其中有對齊次座標有非常精闢的說明,特別是針對這樣一句話進行了有力的證明 齊次座標表示是計算機圖形學的重要手段之一,...

齊次座標的理解

在乙個叫做 三百年 重生 的部落格上看到一篇關於透視投影變換的 的文章,其中有對齊次座標有非常精闢的說明,特別是針對這樣一句話進行了有力的證明 齊次座標表示是計算機圖形學的重要手段之一,它既能夠用來明確區分向量和點,同時也更易用於進行 仿射 線性 幾何變換。f.s.hill,jr。下面是作者對齊次座...