人物10418 項目5189 室內587 家居及產品164 文章2391 方案1385 攝影786 視頻225 圖書201 讀者來稿 最新評論21,720 所有作品11405 所有圖片155,380
什么是齊次坐標?
在計算機圖形學里面會經常碰到幾何體的平移,旋轉,縮放以及投影變換. 一般情況下會涉及到齊次坐標與變換矩陣. 為了后續對變換矩陣內容的講解, 在這里先簡要的介紹一下什么是齊次坐標.
來源:互聯網

編輯: 馬海東

在計算機圖形學里面會經常碰到幾何體的平移,旋轉,縮放以及投影變換. 一般情況下會涉及到齊次坐標與變換矩陣. 為了后續對變換矩陣內容的講解, 在這里先簡要的介紹一下什么是齊次坐標.

以下為正文內容轉載(經過編輯與修改)

by Song Ho Ahn (???)

問題:兩條平行線可以相交?

在歐氏空間(幾何學)中,同一平面上的兩條平行線不能相交,或者說不能永遠相交。這是一個大家都熟悉的常識。

但是,在投影空間中就不一樣了,比如,下圖上的火車鐵路在遠離眼睛的時候會變得更窄。最后,兩條平行的鐵軌在地平線處相交,也就是無限遠處的一點。

鐵路變窄,在地平線處相交。

鐵路變窄,在地平線處相交。

歐氏空間(或笛卡爾空間)能很好地描述我們的2D/3D幾何,但它們不足以處理投影空間(實際上,歐氏幾何是投影幾何的一個子集)。一個2D點的笛卡爾坐標可以表示為(x,y)。

如果這個點遠去到無窮遠呢?無窮遠處的點在歐氏空間中無法具體展示。在投影空間中,平行線會在無窮遠處相遇,但在歐氏空間中卻做不到。

那么數學家如何用數學的方法來描述這個問題呢?

解決方案: 齊次坐標

由 August Ferdinand M?bius(不錯,就是那個莫比烏斯圈的那位) 提出的齊次坐標,使圖形和幾何學的計算在投影空間中成為可能。齊次坐標是用N+1個數來表示N維坐標的一種方式。

要制作二維齊次坐標,我們只需在現有坐標中增加一個額外的變量w。因此,笛卡爾坐標中的一點,(X,Y)在齊次坐標中就變成了(x,y,w)。而笛卡兒坐標中的X和Y在齊次坐標中的x、y和w則重新表達為

X = x/w
Y = y/w

為什么叫 “齊次”呢?

如前所述,為了將齊次坐標(x,y,w)轉換為笛卡爾坐標,我們只需將x和y除以w即可。

2

將Homogeneous轉換為Cartesian,我們可以發現一個重要的事實。讓我們看看下面的例子。

3

如你所見 (1, 2, 3), (2, 4, 6)和(4, 8, 12)這三個點對應于同一個歐氏點(1/3, 2/3). 而任何乘以a的數(1a,2a,3a)與歐氏空間中的(1/3,2/3)是同一個點。因此,這些點是 “homogeneous/齊次 “的,因為它們在歐氏空間(或笛卡爾空間)中代表同一個點。換句話說,齊次坐標是與乘數a不相關的。

WechatIMG2308

數學證明: 兩條平行線可以相交

考慮以下歐氏空間的線性系統。

4

而我們知道,由于C≠D,所以上述方程沒有解。 如果C=D,那么兩條線是相同的(重疊的)。

讓我們重寫投影空間的方程,將x和y分別替換為x/w,y/w。

5

現在,我們有一個解,(x,y,0),因為(C-D)w=0,∴w=0. 因此,兩條平行線在(x,y,0)處相交.

(x,y,0)在幾何上代表一條沒有起點與終點, 也沒有長度的射線,它只有方向。

齊次坐標的應用

齊次坐標在計算機圖形學中是非常有用的基本概念,通過增加一個額外的維度W后,可以用來對幾何體進行縮放,旋轉,平移,透視投影的矩陣變換.

任何N維度齊次坐標,只要W不為0,都可以通過將每一個分量除以W來轉換到 W=1的向量, 然后獲得其N-1維的歐式空間的點值。

而當W=0時,這個坐標表示無限長的一個向量,通常表示N-1維的矢量。

reference
http://www.songho.ca/math/homogeneous/homogeneous.html
https://hackernoon.com/programmers-guide-to-homogeneous-coordinates-73cbfd2bcc65
https://www.tomdalling.com/blog/modern-opengl/explaining-homogenous-coordinates-and-projective-geometry/

相關文章

建筑師為什么要會python編程?
Caad4Rhino:建筑繪圖工具插件
Rhino及Bob McNeel的故事(轉載)
計算機曲線spline簡史(轉載)
漫談算法設計(computational design)與腳本語言(grasshopper, python)
算法: 平面圖自動生成(轉載)

建筑師編程課推薦

ikuku精選課 Python4Rhino 建筑師編程課 2020.9.26開始線上直播!講師:馬海東

6

 

maurizio 等1人贊過
2020.09.23
請帖個標簽,寫個點評吧!
標簽(多個標簽用逗號隔開) 登錄可保存標簽
綁定新浪微博可評論

小貼士


標簽收藏可以有利于您以后的內容分類管理
->進入收藏管理頁。


blog comments powered by Disqus
分分快三大小技巧规律