版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章三維空間的觀察第六章三維空間的觀察主要討論投影的數(shù)學(xué)表示三維觀察中的投影視見體到規(guī)范視見體的變換用三維規(guī)范體裁剪在三維視見體內(nèi)裁剪三維物體投影變換至視口二維圖形圖6.1三維觀察的概念模型
6.1投影什么是投影變換(或投影變換的作用):
由于顯示器和繪圖機(jī)只能用二維空間來(lái)表示圖形,要顯示三維圖形就要把三維坐標(biāo)表示的幾何形體變換成二維坐標(biāo)表示的圖形,這就是圖形的投影變換。投影變換的要素視點(diǎn)(投影中心),投影平面投影線,投影投影變換的類型
透視投影:投影中心和投影面之間的距離是有限的
平行投影:投影中心和投影平面之間的距離是無(wú)限的根據(jù)投影方向與投影平面之間的關(guān)系,平行投影分為正投影與斜投影視點(diǎn)投影平面投影線
6.1.1透視投影圖6.3為的投影圖6.4在平面上的正投影在坐標(biāo)系中來(lái)討論投影,假定投影平面是。設(shè)視點(diǎn),空間中任一點(diǎn)在平面上的投影為
,如圖6.3所示,則下式成立:
(6.1)
平面上的正投影分別為透視投影的計(jì)算公式設(shè)在則式(6.1)的幾何意義如圖6.4所示。(6.2)
寫成齊次坐標(biāo)表達(dá)式為:(6.3)
(6.4)
由式(6.1)得:圖6.3為的投影圖6.4在平面上的正投影
6.1.2平行投影平行投影分為正投影與斜投影正投影:投影方向與投影平面法向相同。常見的正投影類型有:正視圖投影:俯視圖投影:側(cè)視圖投影:等軸測(cè)投影:投影平面的法向與每個(gè)坐標(biāo)軸的夾角相等;
斜投影,常見的斜投影類型有:斜等測(cè)投影:投影方向與投影平面成45度角;斜二測(cè)投影:投影方向和投影平面的夾角為arctan(2)。圖6.5三視圖正視圖側(cè)視圖原物體俯視圖(a)斜等測(cè)投影(b)斜二測(cè)投影圖6.6斜投影軸測(cè)投影axonometricprojection軸測(cè)投影是平行投影的一種,可以使三個(gè)坐標(biāo)面在一個(gè)投影上都能看到,從而具有立體感。定義:將物體連同其參考直角坐標(biāo)系,沿不平行于任一坐標(biāo)面的方向,用平行投影法將其投射在一個(gè)投影面上所得到的圖形。軸測(cè)投影通過(guò)軸測(cè)投影繪出的圖形,稱為“軸測(cè)圖”。軸測(cè)圖在工程技術(shù)及其他科學(xué)中常有應(yīng)用。在軸側(cè)圖中,物體上與任一坐標(biāo)軸平行的長(zhǎng)度均可按一定的比率來(lái)量度。三軸向的比率都相同時(shí)稱為“等測(cè)投影”,其中兩軸向比率相同時(shí)稱為“二測(cè)投影”,三軸向比率均不相同時(shí)稱為“三測(cè)投影”。軸測(cè)投影中投射線與投影面垂直的稱為“正軸測(cè)投影”,傾斜的稱為“斜軸測(cè)投影”。平行投影變換公式
設(shè)投影方向?yàn)?/p>
,空間點(diǎn)在投影平面上的投影為,由于是沿方向投影,所以下式成立:
(6.5)
所以(6.6)
式(6.6)是平行投影的計(jì)算公式,寫成齊次坐標(biāo)表達(dá)式為:(6.7)
投影中心在無(wú)窮遠(yuǎn)處′′平行投影
6.1.3任意坐標(biāo)系到觀察坐標(biāo)系中的變換滅點(diǎn):一組不平行于投影平面的平行線,經(jīng)過(guò)透視投影后相交于一點(diǎn),稱為滅點(diǎn)。主滅點(diǎn):如果這組平行線平行于坐標(biāo)軸,這時(shí)的滅點(diǎn)稱為主滅點(diǎn),至多存在三個(gè)主滅點(diǎn),分別對(duì)應(yīng)于投影平面切割的坐標(biāo)軸的數(shù)目。透視投影按主滅點(diǎn)的個(gè)數(shù)分為一點(diǎn)透視、二點(diǎn)透視和三點(diǎn)透視。圖6.7
一點(diǎn)透視圖6.9三點(diǎn)透視圖6.8兩點(diǎn)透視在坐標(biāo)系oxyz中來(lái)討論投影問(wèn)題。確定一個(gè)投影面:一個(gè)參考點(diǎn)
和投影平面的法線方向。還要指定的方向,為此要給定一個(gè)向量
,U在投影平面上的垂直投影所指的方向便是軸的方向。取過(guò)點(diǎn)沿N方向作的射線定為 軸觀察坐標(biāo)系的建立圖6.10投影平面的指定NyOxzU設(shè) 是點(diǎn)在坐標(biāo)系oxyz中的坐標(biāo),,和軸的單位方向向量為 、 和 ,那么從坐標(biāo)系oxyz到 的變換是坐標(biāo)變換公式(6.8)設(shè)、和軸的單位方向向量分別為i,j,k。軸和N方向一致,故有
軸和向量U×N方向一致,設(shè)其中x,y和z分別為ox,oy,oz軸的單位方向向量,則
軸的單位方向向量應(yīng)是和軸的單位向量的向量積,因此齊次坐標(biāo)形式在坐標(biāo)系oxyz中給定的投影方向和視點(diǎn)的坐標(biāo)都可用式(6.8)變換到坐標(biāo)系中的量和。式(6.8)寫成齊次坐標(biāo)表達(dá)式為
(6.9)其中
(6.8)坐標(biāo)系oxyz中任一點(diǎn)(x,y,z)在投影平面上的投影把式(6.9)代入式(6.3)得(6.10)
坐標(biāo)系oxyz中任一點(diǎn)(x,y,z),由(6.10)和(6.4)便可求得它在投影平面上的投影點(diǎn) 。
(6.4)平行投影時(shí),由式(6.7)和(6.9),得(6.11)
6.1.4射影變換做三維裁剪或消除隱藏線時(shí),可把一個(gè)對(duì)象的透視圖看成另一個(gè)對(duì)象的在同一投影平面上的正視圖,并要求兩個(gè)對(duì)象對(duì)應(yīng)點(diǎn)坐標(biāo)分量的排序一致。后一個(gè)對(duì)象可以通過(guò)前一個(gè)對(duì)象做下述射影變換得到,所以(6.12)(6.13)對(duì)于三維裁剪來(lái)說(shuō),希望變換不改變?nèi)S窗口前后平面=和=的位置,這時(shí)式(4.16)中的A和B應(yīng)取成代入投影平面透視投影平行投影圖6.12由透視投影變換到平行投影變換為單調(diào)遞增函數(shù)由上式求導(dǎo)得
為單調(diào)遞增函數(shù),只要
便是的單調(diào)遞增函數(shù),可保證兩個(gè)對(duì)象對(duì)應(yīng)點(diǎn)按坐標(biāo)分量的排序是一致的。
由得只要
則
射影變換的齊次坐標(biāo)表示
聯(lián)立式(6.2)和(6.12),則得到射影變換的齊次坐標(biāo)表示
平行投影時(shí),可直接取
(6.14)
式(6.6)和(6.14)就是在平行投影時(shí)所建立的一個(gè)仿射變換,變換的齊次坐標(biāo)表示為:
(6.2)
(6.12)(6.6)
世界坐標(biāo)至規(guī)范化坐標(biāo)空間的變換,就是要把世界坐標(biāo)系中的圖形變到規(guī)范化坐標(biāo)系中。這個(gè)變換把圖6.13中的平行六面體P1P2P3P4Q1Q2Q3Q4變成圖6.15中的單位立方體,把圖6.14中的棱臺(tái)P1P2P3P4Q1Q2Q3Q4變成圖6.16的棱臺(tái)。
6.2視見體到規(guī)范視見體的變換在規(guī)范化坐標(biāo)系中定義了兩種視見體:
平行投影的視域由下列方程定義對(duì)透視來(lái)說(shuō),視見體是下列六個(gè)方程代表的平面圍成的棱臺(tái)圖6.13
平行投影時(shí)定義的窗口P1P4P3P2Q2Q3Q4Q1A4A3A2A1圖6.14
透視時(shí)定義的窗口CP1P2P3P4Q1Q2Q3Q4A4A3A2A1xvzvyv111ov圖6.15
平行投影時(shí)的規(guī)范化空間yvxvzv圖6.16
透視時(shí)的規(guī)范化空間ov
6.2.1平行投影視見體的規(guī)范化設(shè)圖Pi和Qi在世界坐標(biāo)中的坐標(biāo)為 。第一步要把點(diǎn)P1移到坐標(biāo)原點(diǎn),這個(gè)變換的矩陣為經(jīng)變換TR后,平行六面體在和平面上的投影為圖6.17所示圖6.17平行六面體在兩個(gè)坐標(biāo)平面上的投影(a)bxby(b)第二、三、四步變換第三步是長(zhǎng)方體變?yōu)閱挝婚L(zhǎng)的立方體。這個(gè)變換矩陣為第二步對(duì)平行六面體做切變,使它成為一個(gè)長(zhǎng)方體。這個(gè)切變的矩陣為第四步為把z軸反向,變換矩陣為由坐標(biāo)系到規(guī)范化坐標(biāo)系的變換為(a)bxby(b)
6.2.2透視投影視見體的規(guī)范化變換后,棱臺(tái)在和平面上的投影如上圖所示。2)
把經(jīng)過(guò)變換后的棱臺(tái)變成正棱臺(tái),其變換為1)
把視點(diǎn)移至坐標(biāo)原點(diǎn),變換為3)進(jìn)行單位化,變換矩陣為4)
變換為把z軸反向,變換也是S2。
從坐標(biāo)變到坐標(biāo)的變換為4
6.3用三維規(guī)范體裁剪在規(guī)范化坐標(biāo)系中平行投影時(shí),視見體是由方程x=0,x=1,y=0,y=1,z=0和z=1代表的六個(gè)平面圍成的立方體。透視時(shí)的視見體是棱臺(tái),由方程x=z,x=–z,y=z,y=–z,z=zmin和z=1代表的六個(gè)平面圍成圖6.19兩種視見體
Sutherland–Cohen算法推廣到三維判斷顯然不可見的線段的編碼應(yīng)為六位,這六位的安排是點(diǎn)在視見體左面,第1位為1,x<0,(x<–z)點(diǎn)在視見體右面,第2位為1,x>1,(x>z)點(diǎn)在視見體下面,第3位為1,y<0,(y<–z)點(diǎn)在視見體上面,第4位為1,y>1,(y>z)點(diǎn)在視見體后面,第5位為1,z>1,(z>1)點(diǎn)在視見體前面,第6位為1,z<0,(z<zmin)括號(hào)中的條件適用于透視的情況。直線和視見體的邊界面的交點(diǎn)設(shè)線段的起點(diǎn)和終點(diǎn):P1(x1,y1,z1)和P2(x2,y2,z2),直線方程為
x=x1+(x2–x1)t,
y=y1+(y2–y1)t,z=z1+(z2–z1)t
和視見體的邊界面,例如y=1求交時(shí),把tL代入即可求得交點(diǎn)的坐標(biāo)。求P1P2和平面x=-z的交點(diǎn)時(shí),把直線方程代入x=-z中求得交點(diǎn)處的參數(shù)梁友棟–Barsky
算法推廣到三維當(dāng)視見體為立方體時(shí),其推廣是直接的。當(dāng)視見體為棱臺(tái)時(shí),設(shè)相應(yīng)平面與線段的參數(shù)值為
則:,,begint0:=0;t1:=1;
deltax:=x1–x0;
delatz:=z1–z0;
clipt(–deltax,–deltaz,x0+z0,t0,t1);
clipt(deltax,–deltaz,z0–x0,t0,t1);
deltay:=y1–y0;
clipt(–deltay,–deltaz,y0+z0,t0,t1);
clipt(deltay,–deltaz,z0–y0,t0,t1);
clipt(–deltaz,z0–zmin,t0,t1);
clipt(deltaz,1–z0,t0,t1);
x0:=x0+t0*deltax;y0:=y0+t0*deltay;z0:=z0+t0*deltaz;
x1:=x0+t1*deltax;y1:=y0+t1*deltay;z1:=z0+t1*deltaz;
showline(x0,y0,z0,x1,y1,z1);1:end
clip的主體部分程序窗口到視口(視區(qū))的變換窗口到視口(視區(qū))的變換是指把所定義的視見體中的內(nèi)容對(duì)應(yīng)到二維的屏幕之中。相當(dāng)于將相機(jī)拍攝的底片洗印到不同尺寸的相片上。通常視見體的寬高比和視口的寬高比應(yīng)該相同,這樣當(dāng)視見體中的圖形映射到視口時(shí)物體才不會(huì)發(fā)生變形。
6.4窗口到視口的變換視口(區(qū))是在屏幕或繪圖紙上指定的一個(gè)矩形,在坐標(biāo)系中的頂點(diǎn)的坐標(biāo)分別是(VL,VB)和
(VR,VT)。窗口由點(diǎn)(WL,WB)和(WR,WT)決定。窗口中的圖形應(yīng)該成比例地變到視口。窗口中的任一點(diǎn)
和視口中的對(duì)應(yīng)點(diǎn)(xv,yv)應(yīng)滿足下列關(guān)系是整理得圖6.20窗口至視口的變換wRwLwBwTvLvRvBvTxvOvyvywOwxw其中(6.15)6.4窗口到視口的變換齊次坐標(biāo)形式為
其中(6.16)在OpenGL中可以用如下函數(shù)定義視口:
voidglViewport(GLintx,GLinty,GLsizeiwidth,GLsizeiheight);其中:x、y為視口矩形的左下角(像素為單位)坐標(biāo);width、height分別為視口的寬和高。默認(rèn)情況下,初始視口的值為(0,0,winWidth,winHeight),其中winWidth、winHeight為窗口的寬和高。應(yīng)該使視口區(qū)的長(zhǎng)寬比與取景體的長(zhǎng)寬比相等,否則會(huì)使顯示的圖象變形
窗口、視口變換修改視口:glViewport()是OpenGL提供的修改視口的函數(shù)。將glViewport(0,0,width,height)改為glViewport(0,0,width/2,height/2),再執(zhí)行程序,可以看到圖形變小了一半。這是因?yàn)間lViewport()指定了一個(gè)更小的顯示區(qū)域(視口)。修改窗口(視見體):將gluOrtho2D(0,width,0,height)改為gluOrtho2D(0,2*width,0,2*height),再執(zhí)行程序,可以看到圖形同樣減小了一半。雖然視區(qū)未變,但由于窗口(視見體)變大了,圖形也就顯得小了。
投影平面上窗口的定義可以有兩種方法。一種是OpenGL中采用的用glFrustum(…)、glPerspective(…)和glOrtho(…)定義四棱臺(tái)或四棱柱的視見體,他們?cè)谕队捌矫嫔系耐队白匀恍纬闪舜翱?。這種方法雖然直觀,但難以保證所觀察的圖形在窗口內(nèi),另一種自動(dòng)定義窗口的方法。窗口的定義自動(dòng)定義窗口在對(duì)象的中心位置附近給定一點(diǎn)(xc,yc,zc)和一個(gè)常數(shù)r,要求以該點(diǎn)為球心,r為半徑的球能把對(duì)象包含在內(nèi)。定義立方體設(shè)點(diǎn)(xc,yc,zc)的投影為,令八個(gè)點(diǎn)投影到投影平面,設(shè)其投影點(diǎn)的坐標(biāo)分別為以 為左下角點(diǎn), 為右上角定義的窗口,常常不和預(yù)先由參數(shù)VL,VB,VR,VT定義的視口相似,須作調(diào)整,保證所觀察的圖形在窗口內(nèi),
6.5連續(xù)變換的處理(6.17)
其中T1是一個(gè)4×4的矩陣。設(shè)投影變換是(6.18)其中T2是3×4矩陣,窗口至視區(qū)的變換是設(shè)在世界坐標(biāo)系中的變換合并成一個(gè)矩陣T1,變換為(6.19)
其中T3是3×3矩陣。為了適合不同物理設(shè)備尺度的要求,在x和y方向還要分別乘以一常數(shù),可由3×3的變換矩陣T4來(lái)實(shí)現(xiàn),即把變換(6.17)式至(6.20)式合并起來(lái)得其中T=T4T3T2T1是一個(gè)3×4矩陣。(6.21)
(6.20)
屏幕坐標(biāo)的計(jì)算
在對(duì)圖形變換以前,先要算出T,輸出每一個(gè)圖形元素時(shí),只要作一次矩陣向量乘法(6.21)式,然后求得屏幕坐標(biāo)中點(diǎn)的坐標(biāo)如果不要作投影變換,例如顯示對(duì)象本身是二維的,或是平行投影,那么式(6.22)也可不作投影變換,這時(shí)可直接令(6.22)
(6.21)
提高效率的技術(shù)圖6.21圖形的顯示流程對(duì)窗口剪裁窗口至視口的變換顯示或繪圖世界坐標(biāo)系的三維變換投影從圖6.21來(lái)看,在投影變換之后,窗口到視區(qū)變換之前還要對(duì)窗口作裁剪,裁剪工作無(wú)法用矩陣來(lái)表示,不能把裁剪工作合并到T中去。為減少工作量,可把幾個(gè)矩陣合并起來(lái)GKS–3D圖形顯示流程提高效率的技術(shù)對(duì)三維窗口,窗口在深度方面有兩個(gè)平行于投影面的平面作為裁剪的邊界,這時(shí)可把深度裁剪放在最前面做,最后作二維裁剪。簡(jiǎn)單的圖形處理流程
T=T4T3T2T1
6.6.1OpenGL中的圖形變換模型變換構(gòu)造一個(gè)復(fù)雜的場(chǎng)景需要許多物體,這些物體都定義于其模型坐標(biāo)系中,由于模型坐標(biāo)系是依物體而建立的,物體在其中的表示相對(duì)簡(jiǎn)單。一個(gè)物體或者獨(dú)立地出現(xiàn)在世界坐標(biāo)系中,或者是更復(fù)雜物體的組成部分,無(wú)論哪種情況,都需要一個(gè)幾何變換將其變換到新的坐標(biāo)系中,這個(gè)變換稱模型變換。
if(c_mode==1)glTranslatef(2,0,-2);//平移
if(c_mode==2)glScalef(0.5,0.6,1.2);//放縮
if(c_mode==3)glRotatef(30,0,1,0);//旋轉(zhuǎn)觀察變換在實(shí)際生活中,為了在不同的距離和角度上拍攝物體,我們可以移動(dòng)物體,進(jìn)行模型變換,也可以保持物體不動(dòng)而移動(dòng)照相機(jī),這個(gè)變換就稱為觀察變換。
gluLookAt(0,0,12,0,0,0,0,1,0);//設(shè)定觀察點(diǎn)的位置
gluLookAt它共接受三組坐標(biāo),
分別為eye,center,up
eye表示我們眼睛在“世界坐標(biāo)系”中的位置,
center表示眼睛“看”的那個(gè)物體中心點(diǎn)的坐標(biāo),
up表示觀察者本身的方向,如果將觀察點(diǎn)比喻成我們的眼睛,那么這個(gè)up則表示我們是正立還是倒立異或某一個(gè)角度在看,所看的影像大不相同,故此時(shí)需要指明我們現(xiàn)在正立,那么X,Z軸為0,Y軸為正即可,通常將其設(shè)置為1,只要表示一個(gè)向上的向量(方向)即可
OpenGL中的圖形變換投影變換投影變換定義了一個(gè)視見體,即限定場(chǎng)景在屏幕上顯示的范圍。
glFrustum(-0.5,1,-0.5,1,1,20);//定義透視投影矩陣
glOrtho(-7,7,-7,7,2,12);//定義正交投影矩陣視口變換視口變換是指把所定義的視見體中的內(nèi)容對(duì)應(yīng)到二維的屏幕之中。相當(dāng)于將相機(jī)拍攝的照片洗印到不同尺寸的相片上。 通常視見體的寬高比和視口的寬高比應(yīng)該相同,這樣當(dāng)視見體中的圖形映射到視口時(shí)物體才不會(huì)發(fā)生變形。
glViewport(0,0,cx,cy);//定義視口大小,cy為窗口的高度
6.6.2OpenGL中的圖形變換應(yīng)用舉例例1
以一立方體為例,投影模式采用透視,視點(diǎn)固定,對(duì)其作平移、放縮和旋轉(zhuǎn)等模型變換,結(jié)果如圖6.22~6.26所示。
圖6.22原點(diǎn)在初始位置(1,1,1)圖6.23平移圖6.24放縮圖6.25繞y軸旋轉(zhuǎn)圖6.26變換代替平移程序主要代碼如下voidCExam2View::OnDraw(CDC*pDC){CExam2Doc*pDoc=GetDocument();
ASSERT_VALID(pDoc); //TODO:adddrawcodefornativedatahere glClearColor(1,1,1,1);//用白色清屏
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();//變換矩陣初始化
gluLookAt(0,0,12,0,0,0,0,1,0);//設(shè)視點(diǎn),(0,0,0)為參考點(diǎn)坐標(biāo),
//gluLookAt(-2,0,14,-2,0,0,0,1,0);//觀察變換替代平移變換的視點(diǎn)
draw_coord();
glPushMatrix();//把當(dāng)前變換矩陣壓入堆棧
glTranslatef(1,1,1);//模型坐標(biāo)系原點(diǎn)變換到世界坐標(biāo)系的(1,1,1)位置
//在模型坐標(biāo)系中做變換
if(c_mode==1)glTranslatef(2,0,-2);//平移
if(c_mode==2)glScalef(0.5,0.6,1.2);//縮放
if(c_mode==3)glRotatef(30,0,1,0);//旋轉(zhuǎn)
//下面這一函數(shù)可以得到當(dāng)前的模型變換矩陣
//glGetDoublev(GL_MODELVIEW_MATRIX,array);
draw_cuboid(4,4,4);
glPopMatrix();//從堆棧中恢復(fù)變換前的變換矩陣}voidCExam2View::OnSize(UINTnType,int
cx,intcy)//窗口變化時(shí)執(zhí)行該程序{CView::OnSize(nType,cx,cy);//窗口大小改變時(shí)的事件處理程序
//TODO:Addyourmessagehandlercodehere
glMatrixMode(GL_PROJECTION);//選擇當(dāng)前矩陣為投影矩陣
glLoadIdentity();
glFrustum(-0.5,1,-0.5,1,1,20);//定義窗口
glMatrixMode(GL_MODELVIEW);//選擇當(dāng)前矩陣為模型變換
glShadeModel(GL_FLAT);//設(shè)置明暗效果,GL-FLAT,一個(gè)面片的顏色一致,//GL-SMOOTH,面片的顏色由插值產(chǎn)生
glViewport(0,0,cx,cy);//定義視口}繪制立方體voidCExam2View::draw_cuboid(GLdoublea,GLdoubleb,GLdoublec)//繪制立方體{glColor3f(0,0,0);
glBegin(GL_LINE_LOOP);//后面
glVertex3f(0,0,0);glVertex3f(a,0,0);glVertex3f(a,b,0);glVertex3f(0,b,0);
glEnd();glBegin(GL_LINE_LOOP);//前面
glVertex3f(0,0,c);glVertex3f(a,0,c);glVertex3f(a,b,c);glVertex3f(0,b,c);glEnd();
glBegin(GL_LINES);//點(diǎn)按照線段連接
glVertex3f(0,0,0); glVertex3f(0,0,c); glVertex3f(a,0,0); glVertex3f(a,0,c); glVertex3f(a,b,0); glVertex3f(a,b,c); glVertex3f(0,b,0);glVertex3f(0,b,c);
glEnd();}繪制坐標(biāo)系voidCExam2View::draw_coord()//繪制坐標(biāo)系{ glColor3f(1,0,0);
glEnable(GL_LINE_STIPPLE);//線型設(shè)置
glLineStipple(1,0xF0F0);//虛線
glBegin(GL_LINES); glVertex3f(0,0,0); glVertex3f(7,0,0); glVertex3f(0,0,0); glVertex3f(0,7,0); glVertex3f(0,0,0); glVertex3f(0,0,7);
glEnd();
glDisable(GL_LINE_STIPPLE);}voidCExam2View::OnRotate(){ //TODO:Addyourcommandhandlercodehere c_mode=3; Invalidate();//激活OnDraw}voidCExam2View::OnTranslate(){//TODO:Addyourcommandhandlercodehere c_mode=1; Invalidate();}voidCExam2View::OnScale()
{//TODO:Addyourcommandhandlercodehere c_mode=2; Invalidate();}voidCExam2View::OnInicube(){//TODO:Addyourcommandhandlercodehere c_mode=0; Invalidate();}如果保持物體不動(dòng),移動(dòng)視點(diǎn)可以得到同樣的視覺效果。例如,對(duì)于平移變換glTranslatef(2,0,-2)的效果圖6.23,也可以通過(guò)觀察變換來(lái)實(shí)現(xiàn),只需把gluLookAt(0,0,12,0,0,0,0,1,0)改為gluLookAt(-2,0,14,-2,0,0,0,1,0)即可,結(jié)果如圖6.26所示。我們可以用函數(shù)glGetDoublev(GL_MODELVIEW_MATRIX,array)得到當(dāng)前的模型變換矩陣
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 部門例會(huì)制度
- 進(jìn)貨查驗(yàn)和索證索票制度
- 現(xiàn)代家庭教育指南全解析
- Java性能優(yōu)化要領(lǐng)及實(shí)踐方法
- 超市消防控制室值班制度
- 組織胚胎學(xué)基礎(chǔ):骨發(fā)生課件
- 診所病歷書寫制度
- 警務(wù)室調(diào)解制度
- 2025年幸運(yùn)公務(wù)員筆試題及答案
- 2025年美國(guó)商業(yè)駕照筆試題庫(kù)及答案
- 兒童出入境委托書
- 土建施工規(guī)范培訓(xùn)
- 汽車銷售月度工作總結(jié)與計(jì)劃
- 2025年人教版九年級(jí)物理知識(shí)點(diǎn)全面梳理與總結(jié)
- DB33T 2256-2020 大棚草莓生產(chǎn)技術(shù)規(guī)程
- 《建設(shè)工程造價(jià)咨詢服務(wù)工時(shí)標(biāo)準(zhǔn)(房屋建筑工程)》
- 10s管理成果匯報(bào)
- 半導(dǎo)體技術(shù)合作開發(fā)合同樣式
- 茜草素的生化合成與調(diào)節(jié)
- 制程PQE述職報(bào)告
- 成人呼吸支持治療器械相關(guān)壓力性損傷的預(yù)防
評(píng)論
0/150
提交評(píng)論