齐次坐标,怎么你也叫Homogeneous
其實(shí)參考鏈接中已經(jīng)解釋的很好了,這篇博客主要就是為了碼一下別人的博客。鏈接1、2里面不僅有關(guān)于齊次坐標(biāo)的解釋,還有很多其他的計(jì)算機(jī)圖像的知識(shí)點(diǎn),鏈接2還做了很多《冰與火之歌》的彩蛋。
在平常數(shù)學(xué)運(yùn)算中,我們一般使用笛卡爾坐標(biāo),但是在計(jì)算機(jī)圖形學(xué)中使用的更多的是齊次坐標(biāo)(Homogeneous Coordinates)。數(shù)學(xué)里,齊次坐標(biāo)(homogeneous coordinates),或投影坐標(biāo)(projective coordinates)是指一個(gè)用于投影幾何里的坐標(biāo)系統(tǒng),如同用于歐氏幾何里的笛卡兒坐標(biāo)一般。該詞由奧古斯特·費(fèi)迪南德·莫比烏斯于1827年在其著作《Der barycentrische Calcul》一書內(nèi)引入齊次坐標(biāo)有三大優(yōu)點(diǎn)。
一,還可以表示無窮遠(yuǎn)處的點(diǎn)。在歐式空間(Euclidean space)或者笛卡爾空間(Cartesian space)中,平行線是無法相交的,但是真實(shí)世界中因?yàn)橥敢曣P(guān)系,平行的鐵軌在無窮遠(yuǎn)處也可以相交。而歐式空間中的坐標(biāo)沒有意義,所以齊次坐標(biāo)就出現(xiàn)了。齊次坐標(biāo)可以用維的坐標(biāo)表示笛卡爾坐標(biāo)系中維的坐標(biāo)。齊次坐標(biāo)對(duì)應(yīng)笛卡爾坐標(biāo),是縮放系數(shù)。這樣當(dāng)取,就可以表示笛卡爾坐標(biāo)系中的無窮大,對(duì)應(yīng)無窮點(diǎn)(points at infinity)。一般的,取,得到歸一化的齊次坐標(biāo)。是齊次坐標(biāo),被稱為增廣矢量(augmented vector)。
??????????????????????????????????????????? ??????????????????????????????????????????
二,齊次坐標(biāo)可以區(qū)分點(diǎn)和向量。計(jì)算機(jī)圖形學(xué)(OpenGL版)》的作者F.S. Hill Jr. 寫到:齊次坐標(biāo)表示是計(jì)算機(jī)圖形學(xué)的重要手段之一,它既能夠用來明確區(qū)分向量和點(diǎn),同時(shí)也更易用于進(jìn)行仿射(線性)幾何變換[98]。在笛卡爾坐標(biāo)系中的一個(gè)坐標(biāo),我們無法判斷它表示的是一個(gè)點(diǎn)還是一個(gè)從原點(diǎn)指向該點(diǎn)的向量。齊次坐標(biāo)因?yàn)橛幸粋€(gè)冗余的維度(縮放系數(shù)),可以作為標(biāo)志位,當(dāng)它取1時(shí)表示坐標(biāo)點(diǎn),當(dāng)它為0時(shí)表示向量。這是因?yàn)楸磉_(dá)一個(gè)點(diǎn)比一個(gè)向量需要額外的信息:
三,齊次坐標(biāo)允許平移、旋轉(zhuǎn)、縮放和透視投影表示為矩陣與向量相乘的運(yùn)算,而使用笛卡爾坐標(biāo),平移和透視投影不能表示成矩陣相乘。仿射變換其實(shí)就是線性變換(旋轉(zhuǎn)縮放)與平移的疊加。笛卡爾坐標(biāo)系不能用乘法表示仿射變換主要是因?yàn)槠揭谱儞Q?,F(xiàn)在利用齊次就可以將平移變換中的矩陣相加轉(zhuǎn)換為矩陣相乘:
????????????????????????????????????????? ?????????????????????????????????????
至于為什么叫齊次,這是因?yàn)辇R次坐標(biāo)與笛卡爾坐標(biāo)不是一一對(duì)應(yīng)的。只要前n個(gè)分量與縮放系數(shù)的比例相同就會(huì)映射到同一個(gè)笛卡爾坐標(biāo),即對(duì)齊次坐標(biāo)每一個(gè)分量同等進(jìn)行縮放,都表示的是笛卡爾坐標(biāo)系中的同一個(gè)點(diǎn),這就是尺度不變性(Scale Invariant),也就是齊次。谷歌翻譯Homogeneous是“同質(zhì)”的意思,百度翻譯結(jié)果是“均勻的;同性質(zhì)的。這里寫作齊次。而之前學(xué)習(xí)的單應(yīng)矩陣中單應(yīng)英文單詞是Homography,指的是點(diǎn)與點(diǎn)一一對(duì)應(yīng)。他們共同使用詞根homo,意為“相同的”。
注意:
三元組 (0, 0, 0) 不表示任何點(diǎn)。原點(diǎn)表示為 (0, 0, 1)
Reference:
?
?
總結(jié)
以上是生活随笔為你收集整理的齐次坐标,怎么你也叫Homogeneous的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python面试题大全(三):Web开发
- 下一篇: 利用github page搭建博客