計算機圖形學里面對於四維齊次坐標的描述並不是非常容易理解,看到這篇文章基本把齊次坐標及其作用講清楚了,學習一下!
4D向量是由3D坐標(x,y,z)和齊次坐標w組成,寫作(x,y,z,w)。
在3D世界中為什么需要3D的齊次坐標呢?簡單地說明一下,在一維空間中的一條線段上取一點x,然后我們想轉移x的位置,那我們應該是x'=x+k,但我們能使用一維的矩陣來表示這變換嗎?不能,因為此時一維的矩陣只能讓x點伸縮。但如果變成了一維的齊次空間[k 1]就很容易地做到。同樣地,在二維空間中,某一圖形如果不使用二維的齊次坐標,則只能旋轉和伸縮,確不能平移。
因此,我們在3D坐標中使用齊次坐標,是為了物體在矩陣變換中,除了伸縮旋轉,還能夠平移,如下運算:
既然了解了使用齊次坐標的意義,我們下一步就要了解一下齊次坐標w是什么意義。設w=1,此時相當於我們把3D的坐標平移搬去了w=1的平面上,4D空間的點投影到w=1平面上,齊次坐標映射的3D坐標是(x/w,y/w,z/w),也就是(x,y,z)。(x,y,z)在齊次空間中有無數多個點與之對應。所有點的形式是(kx,ky,kz,k),其軌跡是通過齊次空間原點的“直線”(其實每個點相當於3D的坐標世界)。
當w=0時,有很大的意義,可解釋為無窮遠的“點”,其意義是描述方向。這也是平移變換的開關,當w=0時,
此時不能平移變換了。這個現象是非常有用的,因為有些向量代表“位置”,應當平移,而有些向量代表“方向”,如表面的法向量,不應該平移。從幾何意義上說,能將第一類數據當作"點",第二類數據當作"向量"。可以通過設置w的值來控制向量的意義。
參考:https://blog.csdn.net/rabbitguiming/article/details/3964140