華中科技大學(xué)《計(jì)算機(jī)圖形學(xué)》課程
MOOC地址:計(jì)算機(jī)圖形學(xué)(HUST)
計(jì)算機(jī)圖形學(xué) | 變換與觀察
6.1 神奇的齊次坐標(biāo)
回顧幾何階段
整體流程:
這其中存在3種變換:
- 坐標(biāo)系的變換
- 模型本身的運(yùn)動
- 觀察者的運(yùn)動
幾何變換
以上各種變換都可以通過以下變換的復(fù)合來計(jì)算:
- 平移
- 比例
- 旋轉(zhuǎn)
- 對稱
- 錯(cuò)切
圖形的幾何變換是指對圖形的幾何信息經(jīng)過平移、比例、旋轉(zhuǎn)等變換后產(chǎn)生新的圖形。
下面以二維為例,講解各個(gè)變換。
平移
指將p點(diǎn)沿直線路徑從一個(gè)坐標(biāo)位置移到另一個(gè)坐標(biāo)位置的重定位過程,是一種不產(chǎn)生變形而移動物體的剛體變換(rigid-body transformation)。
比例
對p點(diǎn)相對于坐標(biāo)原點(diǎn)沿x方向放縮Sx倍,沿y方向放縮Sy倍。其中Sx和Sy稱為比例系數(shù)。
旋轉(zhuǎn)
將p點(diǎn)繞坐標(biāo)原點(diǎn)轉(zhuǎn)動θ角度(逆時(shí)針為正,順時(shí)針為負(fù))得到新的點(diǎn)p’的重定位過程。
對稱
對稱變換后的圖形是原圖形關(guān)于某一軸線或原點(diǎn)的鏡像。
錯(cuò)切
也稱為剪切、錯(cuò)位變換,用于產(chǎn)生彈性物體的變形處理。
總結(jié):
齊次坐標(biāo)的引入
齊次坐標(biāo)的概念和相關(guān)問題
齊次坐標(biāo)表示就是用n+1維向量表示一個(gè)n維向量。
以二維坐標(biāo)系下點(diǎn)p(4,3)為例:齊次坐標(biāo)表示為p(hx,hy,hz),具體可以為P(4,3,1), P(8,6,2)等等。
說明齊次坐標(biāo)的不唯一性。
規(guī)范化齊次坐標(biāo)表示就是h=1的齊次坐標(biāo)表示。
規(guī)范化的方法:將每一維除以h。
以二維坐標(biāo)系下點(diǎn)p(4,3)為例:齊次坐標(biāo)表示為P(4,3,1), P(8,6,2)等等;其中,規(guī)范化齊次坐標(biāo)表示P(4,3,1);
規(guī)范化:將P(8,6,2)規(guī)范化只需要對每一維除以h即可。即:P(8/2,6/2,2/2)得到P(4,3,1)。
基于齊次坐標(biāo)的變換
全部統(tǒng)一為矩陣運(yùn)算:
其中:
T1是對圖形進(jìn)行比例、旋轉(zhuǎn)、對稱、錯(cuò)切等變換;
T2是對圖形進(jìn)行平秱變換;
T3是對圖形作投影變換;
T4則可以對圖形作整體比例變換。
整體比例變換:
如果有多個(gè)點(diǎn)?如果變換多次呢?
-
幾何變換均可表示成P’ = P ? T 的形式,其中P和P’可以有多行(有幾個(gè)點(diǎn)對應(yīng)幾行);
-
如果是多次變換,則T變成多次變換對應(yīng)矩陣的乘積:
6.2 三維模型,動起來!
基本三維變換
基本的三維變換包括:
- 平移
- 比例
- 旋轉(zhuǎn)
- 對稱
- 錯(cuò)切
三維坐標(biāo)(x,y,z)的齊次坐標(biāo)表示(hx,hy,hz,h)。
以維坐標(biāo)系下點(diǎn)p(4,3,2)為例:齊次坐標(biāo)表示具體可以為P(4,3,2,1), P(8,6,4,2)等,規(guī)范化齊次坐標(biāo)表示為P(4,3,2,1)。
基于三維齊次坐標(biāo)的變換:
根據(jù)T3D在變換中所起的作用,可將T3D分成四個(gè)子矩陣:
T1:3×3階子矩陣,作用是對點(diǎn)進(jìn)行比例、對稱、旋轉(zhuǎn)、錯(cuò)切變換
T2:1×3階子矩陣,作用是對點(diǎn)進(jìn)行平移變換
T3:3×1階子矩陣,作用是進(jìn)行投影變換
T4:1×1階子矩陣,作用是進(jìn)行整體比例變換
平移
指將p點(diǎn)沿直線路徑從一個(gè)坐標(biāo)位置移到另一個(gè)坐標(biāo)位置的重定位過程,是一種不產(chǎn)生變形而移動物體的剛體變換(rigid-body transformation)。
比例
對p點(diǎn)相對于坐標(biāo)原點(diǎn)沿x方向放縮Sx倍,沿y方向放縮Sy倍,沿z方向放縮Sz倍。其中Sx、Sy和Sz稱為比例系數(shù)。
旋轉(zhuǎn)
將p點(diǎn)繞坐標(biāo)軸轉(zhuǎn)動θ角度得到新的點(diǎn)p’的重定位過程。
正方向如何確定?
按右手定則,規(guī)定逆時(shí)針為正,順時(shí)針為負(fù)。
對稱
對稱變換后的圖形是原圖形關(guān)于某一軸線、某一坐標(biāo)平面或原點(diǎn)的鏡像。
關(guān)于坐標(biāo)平面:
關(guān)于坐標(biāo)軸:
錯(cuò)切
也稱為剪切、錯(cuò)位變換,用于產(chǎn)生彈性物體的變形處理。
假設(shè)有一個(gè)x方向上的錯(cuò)切則:x’=x+dy+gz。
整體比例變換
整體比例變換:對p點(diǎn)相對于坐標(biāo)原點(diǎn)沿x方向放縮S倍。
逆變換
所謂逆變換即是與上述變換過程的相反的變換。
平移的逆變換
平移的逆變換就是反向平移,將平移后的點(diǎn)移回到原處。
其變換矩陣為:
比例變換的逆變換
比例變換的逆變換就是將比例因子取為倒數(shù)。
其變換矩陣為:
旋轉(zhuǎn)變換的逆變換
旋轉(zhuǎn)變換的逆變換就是反向旋轉(zhuǎn),也就是將旋轉(zhuǎn)角度由θ改為- θ。
其變換矩陣為:
復(fù)合變換
三維復(fù)合變換是指圖形作一次以上的變換,變換結(jié)果是每次變換矩陣相乘。
相對于任一參考點(diǎn)的變換
相對于參考點(diǎn)F(xf,yf,zf)作比例、旋轉(zhuǎn)、錯(cuò)切等變換的過程分為以下三步:
- 將參考點(diǎn)F移至坐標(biāo)原點(diǎn)
- 針對原點(diǎn)進(jìn)行二維幾何變換
- 進(jìn)行反平移
繞任意軸的三維旋轉(zhuǎn)變換
答案將在下一節(jié)給出。
6.3 觀察者也能動
繞任意軸的三維旋轉(zhuǎn)變換
假設(shè)已知空間有任意軸AB,A點(diǎn)的坐標(biāo)為A(xA,yA,zA),AB的方向數(shù)為(a,b,c)。
現(xiàn)有空間一點(diǎn)p(x, y, z) ,繞AB軸逆時(shí)針旋轉(zhuǎn)θ角后成為p’ (x’, y’, z’ ) ,若旋轉(zhuǎn)變換矩陣為TRAB。
則:[x’ y’ z’ 1] = [x y z 1] · TRAB
問題:如何求出TRAB?
步驟:
- 把A點(diǎn)移動到坐標(biāo)原點(diǎn)
- 把AB軸繞到某個(gè)坐標(biāo)軸上
- 旋轉(zhuǎn)
- 求1、2變換的逆變換,回到AB原來的位置
第一步:把A點(diǎn)移動到坐標(biāo)原點(diǎn)
第二步:把AB軸繞到某個(gè)坐標(biāo)軸上
繞x軸正轉(zhuǎn)α角,將O’B’轉(zhuǎn)動到XOZ平面上
繞y軸反轉(zhuǎn)β角,將O’B’轉(zhuǎn)動到z軸上
第三步:旋轉(zhuǎn)
此時(shí),AB軸與z‘軸重合,此時(shí)繞AB軸的旋轉(zhuǎn)轉(zhuǎn)換為繞z軸的旋轉(zhuǎn)。
繞z軸旋轉(zhuǎn)θ角的旋轉(zhuǎn)變換矩陣為:
第四步:求1、2變換的逆變換,回到AB原來的位置
也就是求 TtA ,TRx ,TRy 的逆變換。
總結(jié):
觀察變換
觀察變換:從世界坐標(biāo)系到觀察坐標(biāo)系的轉(zhuǎn)換。
觀察坐標(biāo)系:
坐標(biāo)原點(diǎn):觀察者所在的位置。
其中:
zv:視點(diǎn)和觀察物體上焦點(diǎn)的連線
yv:向上的方向
xv:按照右手定則確定的方向
實(shí)際上求什么?
求世界坐標(biāo)系中點(diǎn)Q(x,y,z)在觀察坐標(biāo)系中的坐標(biāo)值。
觀察變換的實(shí)現(xiàn):
- 平移觀察參考點(diǎn)到用戶坐標(biāo)系原點(diǎn)
- 進(jìn)行旋轉(zhuǎn)變換分別讓xv、yv和zv軸對應(yīng)到用戶坐標(biāo)系中的x、y和z軸。
模型變換與觀察變換
觀察變換的應(yīng)用:場景漫游文章來源:http://www.zghlxwxcb.cn/news/detail-426870.html
模型變換不觀察變換具有對偶性。但是由于場景中只有部分物體運(yùn)動,所以效果不同。文章來源地址http://www.zghlxwxcb.cn/news/detail-426870.html
到了這里,關(guān)于計(jì)算機(jī)圖形學(xué) | 變換與觀察的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!