版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、三維變換及三維觀察三維變換及三維觀察計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維圖形變換包括三維圖形幾何變換和投影變換。三維圖形變換包括三維圖形幾何變換和投影變換。三維圖形幾何變換是指對三維圖形的幾何信息經(jīng)過平移、三維圖形幾何變換是指對三維圖形的幾何信息經(jīng)過平移、比例、旋轉(zhuǎn)等變換后產(chǎn)生新的圖形。三維圖形幾何變換實比例、旋轉(zhuǎn)等變換后產(chǎn)生新的圖形。三維圖形幾何變換實現(xiàn)從不同位置觀察三維物體的模擬?,F(xiàn)從不同位置觀察三維物體的模擬。投影變換就是將三維立體(或物體)投射到投影面上得到投影變換就是將三維立體
2、(或物體)投射到投影面上得到二維平面圖形。其實質(zhì)是用二維圖形表達三維對象。二維平面圖形。其實質(zhì)是用二維圖形表達三維對象。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系與二維幾何變換類似,三維圖形幾何變換也是通過對頂點與二維幾何變換類似,三維圖形幾何變換也是通過對頂點坐標做矩陣變換來實現(xiàn)。坐標做矩陣變換來實現(xiàn)。在定義了規(guī)范化齊次坐標系之后,三維圖形變換可以表示在定義了規(guī)范化齊次坐標系之后,三維圖形變換可以表示為圖形點集的規(guī)范化齊次坐標矩陣與某一變化矩陣相乘的為圖形點集的規(guī)范化齊次坐標矩陣與某一變化矩陣相乘的形式。形式。三維變換的基本概
3、念三維變換的基本概念計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維齊次坐標變換矩陣簡稱為三維變換矩陣。三維齊次坐標變換矩陣簡稱為三維變換矩陣。其形式為:其形式為:snmlrihgqfedpcbaTD3三維變換的基本概念三維變換的基本概念計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維空間點的三維變換可以表示為點的規(guī)范化齊次坐標三維空間點的三維變換可以表示為點的規(guī)范化齊次坐標矩陣與三維變換矩陣相乘的形式。矩陣與三維變換矩陣相乘的形式。 snmlrihgqfedpcba
4、zyxTzyxzyxD1113三維變換的基本概念三維變換的基本概念計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系T3D按功能可劃分為按功能可劃分為4個子矩陣。個子矩陣。ihgfedcbaT13x3階子矩陣,作用是對點進行比例、對階子矩陣,作用是對點進行比例、對稱、旋轉(zhuǎn)和錯切變換。稱、旋轉(zhuǎn)和錯切變換。nmlT 21x3階子矩陣,作用是對點進行平移變換。階子矩陣,作用是對點進行平移變換。rqpT33x1階子矩陣,作用是對點進行透視變換。階子矩陣,作用是對點進行透視變換。 sT 41x1階子矩陣,作用是產(chǎn)生整體比例變換。階子矩陣,作用是產(chǎn)
5、生整體比例變換。三維變換的基本概念三維變換的基本概念計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系1000000000000jeaTscale常見的幾種三維齊次坐標變換矩陣:常見的幾種三維齊次坐標變換矩陣: 一、比例變換:一、比例變換:二、平移變換:二、平移變換:1010000100001nmlTmove矩陣中的矩陣中的a e j分別為分別為x y z三個方向的比例因子。三個方向的比例因子。矩陣中的矩陣中的l m n分別為分別為x y z三個方向的平移量。三個方向的平移量。三維幾何變換三維幾何變換計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維
6、變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三、旋轉(zhuǎn)變換:三、旋轉(zhuǎn)變換:旋轉(zhuǎn)角度正負向定義符合右旋轉(zhuǎn)角度正負向定義符合右手螺旋定則。即大拇指表示手螺旋定則。即大拇指表示坐標軸正向,四指握拳的方坐標軸正向,四指握拳的方向為旋轉(zhuǎn)角的正向。向為旋轉(zhuǎn)角的正向。三維幾何變換三維幾何變換YZ計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系常見的幾種三維齊次坐標變換矩陣:常見的幾種三維齊次坐標變換矩陣: 當物體分別繞當物體分別繞x、y、 z軸旋轉(zhuǎn)時,旋轉(zhuǎn)變換矩陣分別為:軸旋轉(zhuǎn)時,旋轉(zhuǎn)變換矩陣分別為:10000cossin
7、00sincos00001xT繞繞x軸旋轉(zhuǎn)軸旋轉(zhuǎn)旋轉(zhuǎn)前后坐標變換旋轉(zhuǎn)前后坐標變換的關(guān)系為:的關(guān)系為:xx sincoszyycossinzyz三維幾何變換三維幾何變換計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系繞繞y軸旋轉(zhuǎn)軸旋轉(zhuǎn)旋轉(zhuǎn)前后坐標變旋轉(zhuǎn)前后坐標變換的關(guān)系為:換的關(guān)系為:10000cos0sin00100sin0cosyTsincoszxxyy cossinzxz三維幾何變換三維幾何變換計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系繞繞z軸旋轉(zhuǎn)軸旋轉(zhuǎn)旋轉(zhuǎn)前后坐標
8、變旋轉(zhuǎn)前后坐標變換的關(guān)系為:換的關(guān)系為:1000010000cossin00sincoszTsincosyxxcossinyxyzz 三維幾何變換三維幾何變換計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系四、三維復(fù)合變換變換:四、三維復(fù)合變換變換:三維復(fù)合變換是指圖形作一次以上的變換,變換結(jié)果是每三維復(fù)合變換是指圖形作一次以上的變換,變換結(jié)果是每次變換矩陣的乘積。次變換矩陣的乘積。) 1( )(321nTTTTPTPPn三維幾何變換三維幾何變換計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖
9、學(xué)與數(shù)字媒體工程系三維齊次坐標變換矩陣三維齊次坐標變換矩陣四、三維復(fù)合變換變換四、三維復(fù)合變換變換繞任意軸的三維旋轉(zhuǎn)變換繞任意軸的三維旋轉(zhuǎn)變換假設(shè)已知空間有任意軸假設(shè)已知空間有任意軸AB,點,點A的坐的坐標為標為(xA, yA, zA),AB矢量的方向系數(shù)矢量的方向系數(shù)為為(a, b, c)?,F(xiàn)有空間點。現(xiàn)有空間點P(x, y, z),繞,繞AB軸逆時針方向旋轉(zhuǎn)軸逆時針方向旋轉(zhuǎn) 角后為角后為P(x, y, z),若旋轉(zhuǎn)變換矩陣為,若旋轉(zhuǎn)變換矩陣為TrAB,則有:,則有:ABTrzyxzyx 1 1計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字
10、媒體工程系三維齊次坐標變換矩陣三維齊次坐標變換矩陣變換步驟:變換步驟:u 平移平移將點將點A平移至原點。平移至原點。u 旋轉(zhuǎn)旋轉(zhuǎn)將平移后的軸將平移后的軸OB繞繞y軸軸旋轉(zhuǎn)旋轉(zhuǎn)a a角,使角,使OB變換成位于變換成位于zoy面內(nèi)面內(nèi)的矢量的矢量B”。u 旋轉(zhuǎn)旋轉(zhuǎn)再繞再繞x軸旋轉(zhuǎn)軸旋轉(zhuǎn)b b角,使矢角,使矢量與量與oz軸重合。軸重合。u 點點P旋轉(zhuǎn)旋轉(zhuǎn)點點P繞繞oz軸旋轉(zhuǎn)軸旋轉(zhuǎn) 角。角。u 逆變換逆變換按上述步驟做逆變換,按上述步驟做逆變換,使使AB回到原來位置?;氐皆瓉砦恢?。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系111ARyR
11、xRRxRyATTTTTTTT三維齊次坐標變換矩陣三維齊次坐標變換矩陣四、三維復(fù)合變換變換四、三維復(fù)合變換變換繞任意軸的三維旋轉(zhuǎn)變換繞任意軸的三維旋轉(zhuǎn)變換上述變換過程用矩陣表示為:上述變換過程用矩陣表示為:要推導(dǎo)出要推導(dǎo)出7個矩陣相乘后的結(jié)果矩陣,是一項復(fù)雜且易個矩陣相乘后的結(jié)果矩陣,是一項復(fù)雜且易出錯的工作。出錯的工作。OpenGL通過操作矩陣堆棧完成多個矩陣通過操作矩陣堆棧完成多個矩陣相乘。相乘。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系平面幾何投影平面幾何投影計算機圖形顯示的核心是創(chuàng)建三維物體的二維圖像,因為計算計算機圖形
12、顯示的核心是創(chuàng)建三維物體的二維圖像,因為計算機的屏幕是二維平面。機的屏幕是二維平面。投影即是三維物體通過投射,在投影面上生成二維平面圖形。投影即是三維物體通過投射,在投影面上生成二維平面圖形。投影分為平面幾何投影和觀察投影。投影分為平面幾何投影和觀察投影。平面幾何投影主要指平行投影和透視投影。平面幾何投影主要指平行投影和透視投影。觀察投影是指在觀察空間下進行的圖形投影變換。觀察投影是指在觀察空間下進行的圖形投影變換。投影的過程實質(zhì)上是一種變換,在計算機內(nèi)部,不同的變換可投影的過程實質(zhì)上是一種變換,在計算機內(nèi)部,不同的變換可以用不同的矩陣表示。以用不同的矩陣表示。 計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基
13、礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系平面幾何投影平面幾何投影平行投影:平行投影:互相平行的投射線照射物體,在投影面內(nèi)產(chǎn)生三維互相平行的投射線照射物體,在投影面內(nèi)產(chǎn)生三維物體的影像。平行投影體系生成物體的三視圖和軸測圖。物體的影像。平行投影體系生成物體的三視圖和軸測圖。透視投影:透視投影:點光源發(fā)點光源發(fā)出的光線照射物體,出的光線照射物體,在投影面上產(chǎn)生三維在投影面上產(chǎn)生三維物體的影像。物體的影像。透視圖分為單點透視、透視圖分為單點透視、兩點透視和三點透視。兩點透視和三點透視。透視投影和平行投影的本質(zhì)區(qū)別在于透視投影的投影中心到投透視投影和平行投影的本質(zhì)
14、區(qū)別在于透視投影的投影中心到投影面之間的距離是有限的;平行投影的投影中心到投影面之間影面之間的距離是有限的;平行投影的投影中心到投影面之間的距離是無限的。的距離是無限的。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系透視投影屬透視投影屬于中心投影于中心投影正投影和斜投影屬于平行投影正投影和斜投影屬于平行投影平面幾何投影平面幾何投影計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系平面幾何投影平面幾何投影計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工
15、業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換平行正投影三視圖平行正投影三視圖三視圖包括主視圖、俯視圖和三視圖包括主視圖、俯視圖和左視圖,由三維形體經(jīng)投影變左視圖,由三維形體經(jīng)投影變換得到。要繪制三視圖,需求換得到。要繪制三視圖,需求得變換矩陣,經(jīng)投影變換得到得變換矩陣,經(jīng)投影變換得到三維形體上各頂點的投影坐標,三維形體上各頂點的投影坐標,即可繪制出三視圖。即可繪制出三視圖。三維投影變換的實質(zhì)是將三維三維投影變換的實質(zhì)是將三維形體上各點投影到同一個平面形體上各點投影到同一個平面上,得到的是一個二維的投影上,得到的是一個二維的投影視圖。視圖。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及
16、三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換平行正投影三視圖平行正投影三視圖1000010000000001vTu主視圖投影矩陣為:主視圖投影矩陣為:計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換平行正投影三視圖平行正投影三視圖u 俯視圖:三維形體向俯視圖:三維形體向xoy面(又稱面(又稱H面)作垂直面)作垂直投影得到俯視圖。投影得到俯視圖。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維
17、投影變換平行正投影三視圖平行正投影三視圖u俯視圖投影矩陣:俯視圖投影矩陣:1000000000100001xoyT立體向立體向XOY面投影面投影計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換平行正投影三視圖平行正投影三視圖u俯視圖投影矩陣:俯視圖投影矩陣:XOY面繞面繞OX軸向下軸向下旋轉(zhuǎn)旋轉(zhuǎn)90度度100000100100000110000)90cos()90sin(00)90sin()90cos(00001RxT計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與
18、數(shù)字媒體工程系三維投影變換三維投影變換平行正投影三視圖平行正投影三視圖u俯視圖投影矩陣:俯視圖投影矩陣:水平投影圖形向下移動水平投影圖形向下移動1000100001000010zTRx計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換平行正投影三視圖平行正投影三視圖u俯視圖投影矩陣:俯視圖投影矩陣:1000000010000010zTTTTtzRxxoy計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換平行正投影三視圖平行正投影三視
19、圖u 側(cè)視圖:獲得側(cè)視圖是將三維形體往側(cè)視圖:獲得側(cè)視圖是將三維形體往yoz面(側(cè)面面(側(cè)面W)作垂直投影。作垂直投影。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換平行正投影三視圖平行正投影三視圖u側(cè)視圖投影矩陣:側(cè)視圖投影矩陣:立體向立體向YOZ面投影面投影1000010000100000yozT計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換平行正投影三視圖平行正投影三視圖u側(cè)視圖投影矩陣:側(cè)視圖投影矩陣:YOZ面繞面繞
20、OZ軸旋轉(zhuǎn)軸旋轉(zhuǎn)1000010000010010100001000090cos90sin0090sin90cosRzT計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換平行正投影三視圖平行正投影三視圖u側(cè)視圖投影矩陣:側(cè)視圖投影矩陣:側(cè)投影圖形沿水平方側(cè)投影圖形沿水平方向平移向平移1000100001000010 xTRx計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換平行正投影三視圖平行正投影三視圖u側(cè)視圖投影矩陣:側(cè)視圖投影矩
21、陣:1000100000100000 xTTTTtRzyoz計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換平行正投影三視圖平行正投影三視圖最終得到立體的三視圖最終得到立體的三視圖計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換正軸測圖正軸測圖正軸測圖簡介:正軸測圖簡介:選不平行于基本投影面的平選不平行于基本投影面的平面為投影面,以垂直于投影面為投影面,以垂直于投影面的矢量為投影矢量,得到面的矢量為投影矢量,得到的三維形體的圖形
22、,稱為正的三維形體的圖形,稱為正軸測圖。如右圖示。軸測圖。如右圖示。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換正軸測圖正軸測圖xzyOABCDEFb正軸測投影是以任意平面為投影面正軸測投影是以任意平面為投影面所做的投影。如圖,若以所做的投影。如圖,若以ABC為投為投影面,投影矢量影面,投影矢量OF垂直于垂直于ABC平平面,點面,點E為原點為原點O在在ABC上的投影。上的投影。產(chǎn)生正軸測投影的思路為:產(chǎn)生正軸測投影的思路為:將投影矢量將投影矢量OF通過兩通過兩次旋轉(zhuǎn)變化至與次旋轉(zhuǎn)變化至與Z軸軸重合,此時重合
23、,此時ABC平面平面變化至與變化至與XOY面平行,面平行,三維向三維向XOY面做投影面做投影即可。即可。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換正軸測圖正軸測圖用矩陣表示正軸測變換的過程:用矩陣表示正軸測變換的過程:矢量矢量OF繞繞Y軸旋轉(zhuǎn)軸旋轉(zhuǎn)a a角角10000cos0sin00100sin0cos10000)cos(0)sin(00100)sin(0)cos(aaaaaaaaRyT計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變
24、換三維投影變換正軸測圖正軸測圖用矩陣表示正軸測變換的過程:用矩陣表示正軸測變換的過程:矢量矢量OF繞繞X軸旋轉(zhuǎn)軸旋轉(zhuǎn)b b 角角10000cossin00sincos00001bbbbRxT計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換正軸測圖正軸測圖用矩陣表示正軸測變換的過程:用矩陣表示正軸測變換的過程:再將三維形體向再將三維形體向XOY面投影面投影1000000000100001pT計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維
25、投影變換正軸測圖正軸測圖將上述三個變換矩陣相乘得到正軸測變換矩陣:將上述三個變換矩陣相乘得到正軸測變換矩陣:100000sincossin00cos000sinsincos baabbaapRxRyTTTT計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換正等軸測圖正等軸測圖正等軸測投影是正等軸測投影是x、y、z三個方向的軸向伸縮系數(shù)相等的三個方向的軸向伸縮系數(shù)相等的正軸測投影,此時有:正軸測投影,此時有:OA=OB=OC。推導(dǎo)可得:推導(dǎo)可得:22cossinaa33sinb36cosb計算機圖形學(xué)基礎(chǔ)計算機圖形
26、學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換正等軸測圖正等軸測圖正等軸測投影變換矩陣可寫為:正等軸測投影變換矩陣可寫為:0000004082. 07071. 0008165. 00004082. 07071. 0T計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換 透視投影透視投影透視投影是中心投影。下圖為一點透視投影原理圖,透視投影是中心投影。下圖為一點透視投影原理圖,XOY為為投影面,點投影面,點P為空間點,為空間點,p為點為點p在投影面上的投影。
27、投影中在投影面上的投影。投影中心在心在Z軸上,且距投影面為軸上,且距投影面為d。透視投影的大小與距離。透視投影的大小與距離d的大的大小成反比。小成反比。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系三維投影變換三維投影變換 透視投影透視投影透視投影分為一點透視、兩點透視和三點透視,通過調(diào)整透視投影分為一點透視、兩點透視和三點透視,通過調(diào)整變換矩陣中的變換矩陣中的p、q、r的取值,可以得到不同的透視圖和不的取值,可以得到不同的透視圖和不同的透視效果。同的透視效果。rqpT3透視投影由變換矩陣中的透視因子實現(xiàn)。透視投影由變換矩陣中的透視
28、因子實現(xiàn)。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換OpenGL圖形軟件包是為三維應(yīng)用而設(shè)計的,包含了大量圖形軟件包是為三維應(yīng)用而設(shè)計的,包含了大量的有關(guān)三維變換的操作。的有關(guān)三維變換的操作。OpenGL中常用的變換包括模型中常用的變換包括模型視圖變換、投影變換和視見區(qū)(視景體)變換。視圖變換、投影變換和視見區(qū)(視景體)變換。模型視圖變換用于確定場景的位置,實現(xiàn)用戶在任意位置、模型視圖變換用于確定場景的位置,實現(xiàn)用戶在任意位置、任意方向上進行觀察。通過設(shè)定觀察參考坐標系實現(xiàn)視圖任意方向上進行觀察。通過
29、設(shè)定觀察參考坐標系實現(xiàn)視圖變換;通過對模型進行平移、旋轉(zhuǎn)、縮放等,實現(xiàn)模型變變換;通過對模型進行平移、旋轉(zhuǎn)、縮放等,實現(xiàn)模型變換。換。投影變換定義了一個觀察空間,指定已完成的場景轉(zhuǎn)換成投影變換定義了一個觀察空間,指定已完成的場景轉(zhuǎn)換成屏幕上顯示的最終圖像的過程。常用的投影包括平行投影屏幕上顯示的最終圖像的過程。常用的投影包括平行投影和透視投影。和透視投影。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換矩陣堆棧矩陣堆棧計算機圖形學(xué)中,所有的變換都是通過矩陣相乘來實現(xiàn)計算機圖形學(xué)中,所有的變換都是通過矩陣相乘
30、來實現(xiàn)的。的。OpenGL中,對象的坐標變換也是通過矩陣來實現(xiàn)中,對象的坐標變換也是通過矩陣來實現(xiàn)的。的。OpenGL中包含兩個重要的矩陣:模型視圖矩陣和投影中包含兩個重要的矩陣:模型視圖矩陣和投影矩陣。模型視圖矩陣用于物體的模型視圖變換,投影矩矩陣。模型視圖矩陣用于物體的模型視圖變換,投影矩陣用于投影變換。陣用于投影變換。通過使用函數(shù)通過使用函數(shù)glMatrixMode(Glenum mode);指定當前操指定當前操作的矩陣對象的類型。作的矩陣對象的類型。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換矩
31、陣堆棧矩陣堆棧指定矩陣類型函數(shù)的參數(shù)指定矩陣類型函數(shù)的參數(shù)mode有兩個值:有兩個值:GL_MODELVIEW:表示對模型矩陣進行操作;:表示對模型矩陣進行操作;GL_PROJECTION:表示對投影矩陣進行操作;:表示對投影矩陣進行操作;一旦設(shè)置了當前操作矩陣,它就將保持為當前的矩陣對象,一旦設(shè)置了當前操作矩陣,它就將保持為當前的矩陣對象,直到再次調(diào)用函數(shù)直到再次調(diào)用函數(shù)glMatrixMode進行修改為止。進行修改為止。默認情況下,系統(tǒng)處理的當前矩陣是模型視圖矩陣。默認情況下,系統(tǒng)處理的當前矩陣是模型視圖矩陣。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)
32、機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換矩陣堆棧矩陣堆棧在構(gòu)造復(fù)雜模型時,常常需要通過多個變換調(diào)整各部分的在構(gòu)造復(fù)雜模型時,常常需要通過多個變換調(diào)整各部分的大小、方位;或者模擬一個運動機構(gòu),需要用不同的變換大小、方位;或者模擬一個運動機構(gòu),需要用不同的變換矩陣來實現(xiàn)各部分自己的運動規(guī)律。矩陣來實現(xiàn)各部分自己的運動規(guī)律。為了能保存多次變換的中間過程,以便在進行一些變換后為了能保存多次變換的中間過程,以便在進行一些變換后能恢復(fù)到某些變換前的狀態(tài),能恢復(fù)到某些變換前的狀態(tài),OpenGL為模型視圖矩陣和為模型視圖矩陣和投影矩陣各維護著一個矩陣堆棧,棧頂矩陣就是當前的模投影矩陣各維護著一
33、個矩陣堆棧,棧頂矩陣就是當前的模型視圖矩陣或投影矩陣。型視圖矩陣或投影矩陣。矩陣堆棧用于保存和恢復(fù)矩陣的狀態(tài),主要用于具有層次矩陣堆棧用于保存和恢復(fù)矩陣的狀態(tài),主要用于具有層次結(jié)構(gòu)的模型繪制,以提高繪圖效率。結(jié)構(gòu)的模型繪制,以提高繪圖效率。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系層次模型的概念:層次模型的概念:在大多數(shù)的應(yīng)用中,都需要方便的創(chuàng)建和操作許多復(fù)在大多數(shù)的應(yīng)用中,都需要方便的創(chuàng)建和操作許多復(fù)雜的對象。通常,可以將這些復(fù)雜的對象分成一些相雜的對象。通常,可以將這些復(fù)雜的對象分成一些相對獨立的子對象,然后描述這些對象組合
34、成完整對象對獨立的子對象,然后描述這些對象組合成完整對象時需要的規(guī)則,據(jù)此可以方便地描述、創(chuàng)建和操作復(fù)時需要的規(guī)則,據(jù)此可以方便地描述、創(chuàng)建和操作復(fù)雜對象。雜對象。OpenGL中的變換中的變換矩陣堆棧矩陣堆棧計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系舞臺SWF文件主類的實例顯示對象容器顯示對象顯示對象容器顯示對象容器顯示對象容器顯示對象顯示對象右圖為右圖為AS3.0中的中的顯示顯示對象的等級結(jié)構(gòu),是對象的等級結(jié)構(gòu),是一個典型的層次結(jié)構(gòu)。一個典型的層次結(jié)構(gòu)。在在AS中,是通過容器中,是通過容器構(gòu)建顯示對象的層次構(gòu)建顯示對象的層次結(jié)
35、構(gòu)的,而在結(jié)構(gòu)的,而在OpenGL中,則是通過矩陣堆中,則是通過矩陣堆棧實現(xiàn)層次結(jié)構(gòu)的模棧實現(xiàn)層次結(jié)構(gòu)的模型繪制。型繪制。OpenGL中的變換中的變換矩陣堆棧矩陣堆棧計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換矩陣堆棧矩陣堆棧OpenGL實現(xiàn)矩陣堆棧操作的函數(shù):實現(xiàn)矩陣堆棧操作的函數(shù):void glPushMatrix(void);void glPopMatrix(void);函數(shù)函數(shù)glPushMatrix將當前堆棧的棧頂矩陣復(fù)制一個,并將將當前堆棧的棧頂矩陣復(fù)制一個,并將其壓入當前矩陣堆棧。該函數(shù)用
36、來保存當前變換矩陣。其壓入當前矩陣堆棧。該函數(shù)用來保存當前變換矩陣。函數(shù)函數(shù)glPopMatrix用于將當前矩陣堆棧的棧頂矩陣彈出,堆用于將當前矩陣堆棧的棧頂矩陣彈出,堆棧中的下一個矩陣變?yōu)闂m斁仃嚕串斍白儞Q矩陣)。該棧中的下一個矩陣變?yōu)闂m斁仃嚕串斍白儞Q矩陣)。該函數(shù)用來恢復(fù)當前變換矩陣原先的狀態(tài)。函數(shù)用來恢復(fù)當前變換矩陣原先的狀態(tài)。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換模型視圖變換模型視圖變換模型視圖矩陣是一個模型視圖矩陣是一個4G4階矩陣,用于指定場景的視圖階矩陣,用于指定場景的視圖變換
37、(如生產(chǎn)三視圖、軸測圖等)和幾何變換(模型的變換(如生產(chǎn)三視圖、軸測圖等)和幾何變換(模型的縮放、旋轉(zhuǎn)、平移等)。縮放、旋轉(zhuǎn)、平移等)。在進行模型視圖矩陣操作之前,必須先調(diào)用函數(shù)在進行模型視圖矩陣操作之前,必須先調(diào)用函數(shù)glMatrixMode(GL_MODELVIEW);指定變換只能影響模型視圖矩陣。指定變換只能影響模型視圖矩陣。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換模型視圖變換模型視圖變換模型視圖變換的實現(xiàn)主要有兩種方法。模型視圖變換的實現(xiàn)主要有兩種方法。一、直接定義矩陣(一、直接定義矩陣(p
38、221)利用函數(shù)利用函數(shù)void glLoadMatrixfd(const TYPE *m);將將m指定的矩陣置為當前矩陣堆棧的棧頂矩陣。其中,指定的矩陣置為當前矩陣堆棧的棧頂矩陣。其中,m是指向是指向一個一個4x4矩陣的指針。矩陣的指針。注意:如果矩陣注意:如果矩陣m作用的模型是作用的模型是OpenGL庫函數(shù)定義的模型,則庫函數(shù)定義的模型,則m矩陣以列優(yōu)先順序保存變換矩陣的數(shù)據(jù);即前面推導(dǎo)的變換矩矩陣以列優(yōu)先順序保存變換矩陣的數(shù)據(jù);即前面推導(dǎo)的變換矩陣要轉(zhuǎn)秩。如果模型以頂點數(shù)組定義,而頂點數(shù)組是按行存儲點陣要轉(zhuǎn)秩。如果模型以頂點數(shù)組定義,而頂點數(shù)組是按行存儲點坐標,則矩陣坐標,則矩陣m以行優(yōu)
39、先順序保存變換矩陣的數(shù)據(jù)。以行優(yōu)先順序保存變換矩陣的數(shù)據(jù)。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換模型視圖變換模型視圖變換設(shè)置自定義矩陣的步驟:設(shè)置自定義矩陣的步驟:glfloat m=;glMatrixMode(GL_MODELCIEW);glLoadMatrixf(m);實例分析:軸測圖,實例分析:軸測圖,mysolid旋轉(zhuǎn)旋轉(zhuǎn)注意:注意:OpenGL坐標系的坐標系的XOY平面是正立投影面,因此生平面是正立投影面,因此生成三視圖的矩陣與課本中的矩陣有所不同。成三視圖的矩陣與課本中的矩陣有所不同。
40、計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系xzyoOpenGL中的變換中的變換模型視圖變換模型視圖變換OpenGL坐標系如圖所示,在該坐標下坐標系如圖所示,在該坐標下下,三視圖變換矩陣如下。下,三視圖變換矩陣如下。1. 主視圖,所有點的主視圖,所有點的z坐標為坐標為0,變,變換矩陣為:換矩陣為:1000000000100001VT計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系xzyoOpenGL中的變換中的變換模型視圖變換模型視圖變換2. 俯視圖變換矩陣推導(dǎo)過程如下。
41、俯視圖變換矩陣推導(dǎo)過程如下。(1) 向向XOZ面投影:面投影:10000100000000011HT計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系xzyoOpenGL中的變換中的變換模型視圖變換模型視圖變換2. 俯視圖變換矩陣推導(dǎo)過程如下。俯視圖變換矩陣推導(dǎo)過程如下。(2)繞)繞X軸旋轉(zhuǎn)軸旋轉(zhuǎn)90:10000010010000011000090cos90sin0090sin90cos000012HT計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系xzyoOpenGL中的變換
42、中的變換模型視圖變換模型視圖變換2. 俯視圖變換矩陣推導(dǎo)過程如下。俯視圖變換矩陣推導(dǎo)過程如下。(3) 沿沿Y軸移動軸移動m:1000100001000013mTH計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系xzyoOpenGL中的變換中的變換模型視圖變換模型視圖變換2. 俯視圖變換矩陣推導(dǎo)過程如下。俯視圖變換矩陣推導(dǎo)過程如下。(4) 三步復(fù)合變換后得到在三步復(fù)合變換后得到在OpenGL屏幕坐標系中俯視圖變換矩陣:屏幕坐標系中俯視圖變換矩陣:100001000000001321mTTTTHHHH計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變
43、換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系xzyoOpenGL中的變換中的變換模型視圖變換模型視圖變換3. 右視圖變換矩陣推導(dǎo)過程如下。右視圖變換矩陣推導(dǎo)過程如下。(1) 向向YOZ面投影:面投影:10000100001000001wT計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系xzyoOpenGL中的變換中的變換模型視圖變換模型視圖變換3. 右視圖變換矩陣推導(dǎo)過程如下。右視圖變換矩陣推導(dǎo)過程如下。(2) 繞繞Y軸旋轉(zhuǎn)軸旋轉(zhuǎn)-90:100000010010010010000)90cos(0)90sin(
44、00100)90sin(0)90cos(2WT計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系xzyoOpenGL中的變換中的變換模型視圖變換模型視圖變換3. 右視圖變換矩陣推導(dǎo)過程如下。右視圖變換矩陣推導(dǎo)過程如下。(3)沿)沿x軸移動軸移動-l:1000100001000013lTW計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系xzyoOpenGL中的變換中的變換模型視圖變換模型視圖變換3. 右視圖變換矩陣推導(dǎo)過程如下。右視圖變換矩陣推導(dǎo)過程如下。(4) 三步復(fù)合變換后得
45、到在三步復(fù)合變換后得到在OpenGL屏幕坐標系中右視圖變換矩陣:屏幕坐標系中右視圖變換矩陣:100000100100000321lTTTTWWWW計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換模型視圖變換模型視圖變換二、利用高級矩陣函數(shù)二、利用高級矩陣函數(shù)在在OpenGL中,還可以通過一些高級矩陣函數(shù)實現(xiàn)模型的平中,還可以通過一些高級矩陣函數(shù)實現(xiàn)模型的平移、旋轉(zhuǎn)和縮放。高級矩陣包括:移、旋轉(zhuǎn)和縮放。高級矩陣包括:glTranslategf(TYPE x, TYPE y, TYPE z);glRotate
46、df(TYPE angle, TYPE x, TYPE y, TYPE z););glScale df(TYPE x, TYPE y, TYPE z);計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系glTranslatedf(x, y, z,):把當前矩陣(如頂點坐標矩陣)與平移變換矩陣相乘。三個把當前矩陣(如頂點坐標矩陣)與平移變換矩陣相乘。三個參數(shù)為參數(shù)為x, y, z三個方向的平移量。如果參數(shù)值為浮點數(shù),則三個方向的平移量。如果參數(shù)值為浮點數(shù),則函數(shù)名寫為函數(shù)名寫為glTranslatef;參數(shù)值為雙精度數(shù),則函數(shù)名寫為;參數(shù)
47、值為雙精度數(shù),則函數(shù)名寫為glTranslated;glRotatedf(angle, x, y, z):把當前矩陣(如頂點坐標矩陣)與旋轉(zhuǎn)變換矩陣相乘。把當前矩陣(如頂點坐標矩陣)與旋轉(zhuǎn)變換矩陣相乘。Angle參數(shù)表示旋轉(zhuǎn)角度,從原點到點(參數(shù)表示旋轉(zhuǎn)角度,從原點到點(x, y, z)的有向連線)的有向連線為旋轉(zhuǎn)軸,逆時針方向為正角度方向。為旋轉(zhuǎn)軸,逆時針方向為正角度方向。OpenGL中的變換中的變換模型視圖變換模型視圖變換計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系glScalefd(x, y, z,):把當前矩陣(如頂點坐標
48、矩陣)與比例變換矩陣相乘。把當前矩陣(如頂點坐標矩陣)與比例變換矩陣相乘。三個參數(shù)分別為三個參數(shù)分別為x, y, z三個方向的比例因子。三個方向的比例因子。OpenGL中的變換中的變換模型視圖變換模型視圖變換計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換模型視圖變換模型視圖變換調(diào)用矩陣函數(shù)繪制模型視圖時,后調(diào)用的矩陣將成為新的調(diào)用矩陣函數(shù)繪制模型視圖時,后調(diào)用的矩陣將成為新的當前模型視圖矩陣,并影響此后繪制的圖形,會造成變換當前模型視圖矩陣,并影響此后繪制的圖形,會造成變換效果的累積。如果不需要這樣的累積
49、,可以調(diào)用重置矩陣效果的累積。如果不需要這樣的累積,可以調(diào)用重置矩陣函數(shù):函數(shù):glLoadIdentity(void);該函數(shù)將單位矩陣設(shè)置為當前變換矩陣。一般在指定當前該函數(shù)將單位矩陣設(shè)置為當前變換矩陣。一般在指定當前操作矩陣對象后,都要調(diào)用重置矩陣函數(shù),將之前變換的操作矩陣對象后,都要調(diào)用重置矩陣函數(shù),將之前變換的影響消除。影響消除。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系視圖變換主要用于確定觀察參考坐標系,即確定視點的位置視圖變換主要用于確定觀察參考坐標系,即確定視點的位置和觀察方向。和觀察方向。也可以通過函數(shù)也可以通
50、過函數(shù)gluLookAt調(diào)整視點位置,以達到觀察立體調(diào)整視點位置,以達到觀察立體不同側(cè)面的效果。不同側(cè)面的效果。gluLookAt(xe, ye, ze, xo, yo, zo, xu, yu, zu)該函數(shù)有該函數(shù)有3組共組共9個參數(shù),第一組個參數(shù),第一組3個參數(shù),指定視點(相機個參數(shù),指定視點(相機鏡頭)在鏡頭)在x、y、z三個方向的坐標;第二組三個方向的坐標;第二組3個參數(shù)指定視點個參數(shù)指定視點(鏡頭)瞄準的點坐標;第三組(鏡頭)瞄準的點坐標;第三組3個參數(shù),指定朝上的向量。個參數(shù),指定朝上的向量。(注意:朝上矢量不能與視線矢量重疊注意:朝上矢量不能與視線矢量重疊)OpenGL中的變換中
51、的變換模型視圖變換模型視圖變換計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換投影變換投影變換OpenGL提供了兩種投影方式:一種是正投影,一種是透提供了兩種投影方式:一種是正投影,一種是透視投影。通過調(diào)用不同的函數(shù)實現(xiàn)不同的投影變換。視投影。通過調(diào)用不同的函數(shù)實現(xiàn)不同的投影變換。為避免不必要的變換發(fā)生,必須調(diào)用為避免不必要的變換發(fā)生,必須調(diào)用glMatrixMode(GL_PROJECTION)指定當前處理的矩陣是投影變換矩陣。指定當前處理的矩陣是投影變換矩陣。例如:例如:glMatrixMode (GL
52、_PROJECTION); glLoadIdentity(); glOrtho (-3.0, 3.0, -3.0, 3.0, -10.0, 10.0);計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換投影變換投影變換一、正投影變換一、正投影變換正投影變換由函數(shù)正投影變換由函數(shù)glOrtho()實現(xiàn)。該函數(shù)創(chuàng)建一個正交實現(xiàn)。該函數(shù)創(chuàng)建一個正交平行的視景體。在該視景體平行的視景體。在該視景體中產(chǎn)生三維物體的平行投影。中產(chǎn)生三維物體的平行投影。如果沒有其它變換,比如旋如果沒有其它變換,比如旋轉(zhuǎn)等,投影方向為轉(zhuǎn)等,
53、投影方向為z軸負方向。軸負方向。glOrtho()函數(shù)創(chuàng)建了一個有函數(shù)創(chuàng)建了一個有限的觀察空間,空間的六個限的觀察空間,空間的六個邊界面為裁剪面。邊界面為裁剪面。“軸測圖軸測圖”例程修改視景體裁剪面例程修改視景體裁剪面觀察裁剪效果。觀察裁剪效果。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系OpenGL中的變換中的變換投影變換投影變換二、透視投影變換二、透視投影變換透視投影的特點是物體的視圖有近大遠小的效果。透視投影的特點是物體的視圖有近大遠小的效果。OpenGL透視透視投影函數(shù)有兩個:投影函數(shù)有兩個:1. glFrustum():
54、該函數(shù)指定的透視視景體該函數(shù)指定的透視視景體如圖為所示。如圖為所示。glFrustum(left, right, bottom, top, near, far);函數(shù)的六個參數(shù)分別定義了該視景體函數(shù)的六個參數(shù)分別定義了該視景體的的left, right, bottom, top, near及及 far的數(shù)值。的數(shù)值。視點位于坐標系原點視點位于坐標系原點。計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系2. gluPerspective():gluPerspective()函數(shù)指定投影函數(shù)指定投影變換方式為透視變換,通過變換方式為透視變
55、換,通過不同的參數(shù)定義透視視景體。不同的參數(shù)定義透視視景體。下圖為下圖為gluPerspective()函數(shù)指函數(shù)指定的透視視景體。定的透視視景體。視點位于坐標原點視點位于坐標原點。OpenGL中的變換中的變換投影變換投影變換計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系gluPerspective()有有4個參數(shù):個參數(shù):gluPerspective(fovy, aspect, near, far);fovy:為:為yoz平面上的視角,取值范圍為平面上的視角,取值范圍為0.0, 180.0;aspect:為視景體的縱橫比;:為視景
56、體的縱橫比;near和和far:分別是觀察點與視景體的前后裁剪面的距離。:分別是觀察點與視景體的前后裁剪面的距離。OpenGL中的變換中的變換投影變換投影變換計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系投影變換投影變換OpenGL的三維坐標變換的三維坐標變換例:太陽系(變換矩陣堆棧實現(xiàn)模型變換)例:太陽系(變換矩陣堆棧實現(xiàn)模型變換) glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0
57、);glPushMatrix(); glutWireSphere(1.0, 20, 20); /* draw sun */ glRotatef (GLfloat) year, 0.0, 1.0, 0.0); glTranslatef (2.0, 0.0, 0.0); glRotatef (GLfloat) day, 0.0, 1.0, 0.0); glutWireSphere(0.2, 10, 10); /* draw earth*/ glPopMatrix();計算機圖形學(xué)基礎(chǔ)計算機圖形學(xué)基礎(chǔ)三維變換及三維觀察三維變換及三維觀察廣東工業(yè)大學(xué)機電學(xué)院圖學(xué)與數(shù)字媒體工程系投影變換投影變換OpenGL的三維坐標變換例:太陽系(投影變換)例:太陽系(投影變換) glMatrixMode (GL_PROJECTION); glLoadI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:教育家精神引領(lǐng)高校思政課教師職業(yè)素養(yǎng)評價體系建構(gòu)研究
- 二零二五版鋁合金建筑模板采購協(xié)議書4篇
- 商場內(nèi)品牌專賣店裝修許可協(xié)議(2025年)2篇
- 2025年度苗木種植與林業(yè)產(chǎn)業(yè)發(fā)展合作合同4篇
- 二手房合作投資合同模板2024版B版
- 二零二五年度人工智能教育培訓(xùn)合同補充協(xié)議6篇
- 二零二五年度旅行社與航空公司合作協(xié)議書3篇
- 2025年度品牌跨界合作與品牌授權(quán)合作協(xié)議4篇
- 二零二五版?zhèn)€人貸款居間中介服務(wù)協(xié)議書6篇
- 2025年度個人房產(chǎn)抵押借款合同規(guī)范文本8篇
- 【寒假預(yù)習(xí)】專題04 閱讀理解 20篇 集訓(xùn)-2025年人教版(PEP)六年級英語下冊寒假提前學(xué)(含答案)
- 2024年智能監(jiān)獄安防監(jiān)控工程合同3篇
- 2024年度窯爐施工協(xié)議詳例細則版B版
- 幼兒園籃球課培訓(xùn)
- 【企業(yè)盈利能力探析的國內(nèi)外文獻綜述2400字】
- 統(tǒng)編版(2024新版)七年級《道德與法治》上冊第一單元《少年有夢》單元測試卷(含答案)
- 100道20以內(nèi)的口算題共20份
- 高三完形填空專項訓(xùn)練單選(部分答案)
- 護理查房高鉀血癥
- 項目監(jiān)理策劃方案匯報
- 《職業(yè)培訓(xùn)師的培訓(xùn)》課件
評論
0/150
提交評論