AI理论知识基础(23)-齐次坐标
所謂齊次坐標(biāo)就是將一個原本是n維的向量用一個n+1維向量來表示。例如,二維點(diǎn)(x,y)的齊次坐標(biāo)表示為(hx,hy,h)。由此可以看出,一個向量的齊次表示是不唯一的,齊次坐標(biāo)的h取不同的值都表示的是同一個點(diǎn),比如齊次坐標(biāo)(8,4,2)、(4,2,1)表示的都是二維點(diǎn)(4,2)。
(1, 4, 7)如果寫成(1,4,7,0),它就是個向量;如果是(1,4,7,1),它就是個點(diǎn)。下面是如何在普通坐標(biāo)(Ordinary Coordinate)和齊次坐標(biāo)(Homogeneous Coordinate)之間進(jìn)行轉(zhuǎn)換:
(1)從普通坐標(biāo)轉(zhuǎn)換成齊次坐標(biāo)時
如果(x,y,z)是個點(diǎn),則變?yōu)?x,y,z,1);
如果(x,y,z)是個向量,則變?yōu)?x,y,z,0)
(2)從齊次坐標(biāo)轉(zhuǎn)換成普通坐標(biāo)時
如果是(x,y,z,1),則知道它是個點(diǎn),變成(x,y,z);
此外,對于一個普通坐標(biāo)的點(diǎn)P=(Px, Py, Pz),有對應(yīng)的一族齊次坐標(biāo)(wPx, wPy, wPz, w),其中w不等于零。比如,P(1, 4, 7)的齊次坐標(biāo)有(1, 4, 7, 1)、(2, 8, 14, 2)、(-0.1, -0.4, -0.7, -0.1)等等。因此,如果把一個點(diǎn)從普通坐標(biāo)變成齊次坐標(biāo),給x,y,z乘上同一個非零數(shù)w,然后增加第4個分量w;如果把一個齊次坐標(biāo)轉(zhuǎn)換成普通坐標(biāo),把前三個坐標(biāo)同時除以第4個坐標(biāo),然后去掉第4個分量。
由于齊次坐標(biāo)使用了4個分量來表達(dá)3D概念,使得平移變換可以使用矩陣進(jìn)行,從而如F.S. Hill, JR所說,仿射(線性)變換的進(jìn)行更加方便。由于圖形硬件已經(jīng)普遍地支持齊次坐標(biāo)與矩陣乘法,因此更加促進(jìn)了齊次坐標(biāo)使用,使得它似乎成為圖形學(xué)中的一個標(biāo)準(zhǔn)
總結(jié)
以上是生活随笔為你收集整理的AI理论知识基础(23)-齐次坐标的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot通过yml和xml文
- 下一篇: AI 趋势