計(jì)算機(jī)圖形學(xué)ppt課件第三章圖形變換與輸出_第1頁(yè)
計(jì)算機(jī)圖形學(xué)ppt課件第三章圖形變換與輸出_第2頁(yè)
計(jì)算機(jī)圖形學(xué)ppt課件第三章圖形變換與輸出_第3頁(yè)
計(jì)算機(jī)圖形學(xué)ppt課件第三章圖形變換與輸出_第4頁(yè)
計(jì)算機(jī)圖形學(xué)ppt課件第三章圖形變換與輸出_第5頁(yè)
已閱讀5頁(yè),還剩68頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第三章 圖形變換與輸出變換的數(shù)學(xué)基礎(chǔ) 矢量矢量和 zyxuuuuzyxvvvvzzyyxxvuvuvuvu變換的數(shù)學(xué)基礎(chǔ)矢量的數(shù)乘 矢量的點(diǎn)積 性質(zhì)zyxkukukuukzzyyxxvuvuvuvuuvvuvuvu000uuu變換的數(shù)學(xué)基礎(chǔ)矢量的長(zhǎng)度 單位矢量 矢量的夾角矢量的叉積 222zyxuuuuuuvuvucoszyxzyxvvvuuukjivu變換的數(shù)學(xué)基礎(chǔ) 矩陣 階矩陣n階方陣零矩陣行向量與列向量單位矩陣矩陣的加法 矩陣的數(shù)乘 矩陣的乘法 矩陣的轉(zhuǎn)置 矩陣的逆 mn矩陣的含義矩陣:由mn個(gè)數(shù)按一定位置排列的一個(gè) 整體,簡(jiǎn)稱mn矩陣。mnmmnnaaaaaaaaa . . . . .

2、 . 21222211 1211a=其中,aij稱為矩陣a的第i行第j列元素變換的數(shù)學(xué)基礎(chǔ)矩陣運(yùn)算 加法設(shè)a,b為兩個(gè)具有相同行和列元素的矩陣a+b = 數(shù)乘ka = k*aij|i=1.m, j=1,. n . b . . . . b m22111112121111mnmnmmmnnbaababaaba變換的數(shù)學(xué)基礎(chǔ) 乘法設(shè)a為32矩陣,b為23矩陣 c = a b = c=cmp = am n bnp cij = aik*bkj 單位矩陣 在一矩陣中,其主對(duì)角線各元素aii=1,其余皆為0的矩陣稱為單位矩陣。n階單位矩陣通常記作in 。 am n = am n in babab ababa

3、bababababababa322322221221312321221121321322121211311321121111 k=1,n變換的數(shù)學(xué)基礎(chǔ) 逆矩陣若矩陣a存在aa-1=a-1a=i,則稱a-1為a的逆矩陣 矩陣的轉(zhuǎn)置 把矩陣a=(aij)mn的行和列互換而得到的nm矩陣稱為a的轉(zhuǎn)置矩陣,記作at 。 (at) t = a (a+b)t = at + bt (aa)t = aat (ab)t = bt at 當(dāng)a為n階矩陣,且a=at ,則 a是對(duì)稱矩陣。變換的數(shù)學(xué)基礎(chǔ)矩陣運(yùn)算的基本性質(zhì) 交換律與結(jié)合律 a+b=b+a; a+(b+c)=(a+b)+c 數(shù)乘的分配律及結(jié)合律 a(a+

4、b) = aa+ab; a(a b) = (aa) b=a (ab) (a+b)a = aa + ba a(ba) = (ab)a變換的數(shù)學(xué)基礎(chǔ) 矩陣乘法的結(jié)合律及分配律 a(b c) = (a b)c (a+b) c = a c+ b c c (a+b) = c a + c b 矩陣的乘法不適合交換律變換的數(shù)學(xué)基礎(chǔ)所謂齊次坐標(biāo)表示法就是由n+1維向量表示一個(gè)n維向量。如n維向量(p1,p2, ,pn)表示為(hp1,hp2,hpn,h),其中h稱為啞坐標(biāo)。 1、h可以取不同的值,所以同一點(diǎn)的齊次坐標(biāo)不是唯一的。如普通坐標(biāo)系下的點(diǎn)(2,3)變換為齊次坐標(biāo)可以是(1,1.5,0.5)(4,6,2

5、)(6,9,3)等等。 2、 普通坐標(biāo)與齊次坐標(biāo)的關(guān)系為“一對(duì)多”由普通坐標(biāo)h齊次坐標(biāo)由齊次坐標(biāo)h普通坐標(biāo) 3、 當(dāng)h=1時(shí)產(chǎn)生的齊次坐標(biāo)稱為“規(guī)格化坐標(biāo)”,因?yàn)榍皀個(gè)坐標(biāo)就是普通坐標(biāo)系下的n維坐標(biāo)。齊次坐標(biāo)齊次坐標(biāo)(x,y)點(diǎn)對(duì)應(yīng)的齊次坐標(biāo)為 (x,y)點(diǎn)對(duì)應(yīng)的齊次坐標(biāo)為三維空間的一條直線 (, )xyhhh0,hhyyhxxhhhzhyyhxxhhh1. 將各種變換用階數(shù)統(tǒng)一的矩陣來表示。提供了用矩陣運(yùn)算把二維、三維甚至高維空間上的一個(gè)點(diǎn)從一個(gè)坐標(biāo)系變換到另一坐標(biāo)系的有效方法。2. 便于表示無窮遠(yuǎn)點(diǎn)。例如:(x h, y h, h),令h等于03. 齊次坐標(biāo)變換矩陣形式把直線變換成直線段,

6、平面變換成平面,多邊形變換成多邊形,多面體變換成多面體。4. 變換具有統(tǒng)一表示形式的優(yōu)點(diǎn)便于變換合成便于硬件實(shí)現(xiàn)齊次坐標(biāo)的作用窗口視圖變換 用戶域和窗口區(qū)1 用戶域:程序員用來定義草圖的整個(gè)自然空間(wd) a 人們所要描述的圖形均在用戶域中定義。 b 用戶域是一個(gè)實(shí)數(shù)域,理論上是連續(xù)無限的。2 窗口區(qū):用戶指定的任一區(qū)域(w) a 窗口區(qū)w小于或等于用戶域wd b 小于用戶域的窗口區(qū)w叫做用戶域的子域。 c 窗口可以有多種類型,矩形窗口、圓形窗口、多邊形窗口等等 d 窗口可以嵌套,即在第一層窗口中可再定義第二層窗口,在第i層窗口中可再定義第i+1層窗口等等。 窗口視圖變換1 屏幕域(dc):

7、設(shè)備輸出圖形的最大區(qū)域,是有限 的 整 數(shù) 域 。 如 圖 形 顯 示 器 分 辨 率 為1024768dc0.10230.7672 視圖區(qū):任何小于或等于屏幕域的區(qū)域 a 視圖區(qū)用設(shè)備坐標(biāo)定義在屏幕域中 b 窗口區(qū)顯示在視圖區(qū),需做窗口區(qū)到視圖區(qū)的坐標(biāo)轉(zhuǎn)換。 c 視圖區(qū)可以有多種類型:圓形、矩形、多邊形等。 d 視圖區(qū)也可以嵌套。 窗口區(qū)和視圖區(qū)的坐標(biāo)變換 設(shè)窗口的四條邊界wxl,wxr,wyb,wyt視圖的四條邊界vxl,vxr,vyb,vyt則用戶坐標(biāo)系下的點(diǎn)(即窗口內(nèi)的一點(diǎn))(xw,yw)對(duì)應(yīng)屏幕視圖區(qū)中的點(diǎn)(xs,ys),其變換公式為vybwybywybwytvybvytyvxlwx

8、lxwxlwxrvxlvxrxwsws窗口區(qū)和視圖區(qū)的坐標(biāo)變換 簡(jiǎn)化為: 1) 當(dāng)ac時(shí),即x 方向的變化與y方向的變化不同時(shí),視圖中的圖形會(huì)有伸縮變化,圖形變形。 2) 當(dāng)a=c=1,b=d=0則xs=xw,ys=yw,圖形完全相同。 思考:前面講的窗口視圖變換時(shí),假設(shè)窗口的邊和坐標(biāo)軸平行,如果窗口的邊不和坐標(biāo)軸平行呢? 式) 1 (dycybxaxwsws窗口區(qū)和視圖區(qū)的坐標(biāo)變換 a. 先讓窗口fghi轉(zhuǎn)-角,使它和fghi重合。 b. 用(1)式進(jìn)行計(jì)算。 圖形變換是計(jì)算機(jī)圖形學(xué)基礎(chǔ)內(nèi)容之一。幾何變換,投影變換,視窗變換線性變換,屬性不變,拓?fù)潢P(guān)系不變。作用: 把用戶坐標(biāo)系與設(shè)備坐標(biāo)系聯(lián)

9、系起來; 可由簡(jiǎn)單圖形生成復(fù)雜圖形; 可用二維圖形表示三維形體; 動(dòng)態(tài)顯示。圖形變換二維圖形的顯示流程圖圖形的幾何變換 圖形變換:對(duì)圖形的幾何信息經(jīng)過幾何變換后產(chǎn)生新的圖形。 圖形變換的兩種形式: 1.圖形不變,坐標(biāo)系改變; 2.圖形改變,坐標(biāo)系不變。 我們所討論的是針對(duì)坐標(biāo)系的改變而講的。 圖形變換一般是指將圖形的幾何信息經(jīng)過幾何變換后產(chǎn)生新的圖形。圖形變換既可以看做是圖形不動(dòng)而坐標(biāo)系變動(dòng),變動(dòng)后該圖形在新的坐標(biāo)系下具有新的坐標(biāo)值;也可以看作是坐標(biāo)系不動(dòng)而圖形變動(dòng),變動(dòng)后的圖形在坐標(biāo)系中的坐標(biāo)值發(fā)生變化。線框圖形的變換,通常是以點(diǎn)變換為基礎(chǔ),把圖形的一系列頂點(diǎn)做幾何變換后,連接新的頂點(diǎn)序列,

10、即可產(chǎn)生新的變換后的圖形。對(duì)于用參數(shù)方程描述的圖形,可以通過參數(shù)方程幾何變換,實(shí)現(xiàn)對(duì)圖形的變換。圖形學(xué)中,實(shí)現(xiàn)圖形變換時(shí)通常采用齊次坐標(biāo)系來表示坐標(biāo)值,可方便的用變換矩陣實(shí)現(xiàn)對(duì)圖形的變換。齊次坐標(biāo)表示法,就是用n+1維矢量表示一個(gè)n維矢量,即n維空間中的點(diǎn)的位置矢量(p1,p2pn)被表示為具有n+1個(gè)坐標(biāo)分量的矢量(hp1,hp2hpn,h)。齊次坐標(biāo)表示法一方面可以表達(dá)無數(shù)遠(yuǎn)點(diǎn);另一方面提供了把矩陣運(yùn)算把二維三維甚至高維空間中一個(gè)點(diǎn)集從一個(gè)坐標(biāo)系變換到另一個(gè)坐標(biāo)系的有效方法。這里討論的幾何變換都是在齊次坐標(biāo)下。3.1圖形的幾何變換基本的幾何變換研究物體坐標(biāo)在直角坐標(biāo)系內(nèi)的平移、旋轉(zhuǎn)和變比的

11、規(guī)律?;咀儞Q可分為二維幾何變換和三維幾何變換兩大類。對(duì)于參數(shù)表示的曲線曲面等圖形的變換,基于效率的考慮,一般對(duì)其參數(shù)做變換來實(shí)現(xiàn)對(duì)整個(gè)圖形的變換,而不是逐點(diǎn)進(jìn)行變換。3.1.1二維圖形幾何變換1、基本變換(1)平移(translation)平移是將對(duì)象從一個(gè)位置(x,y)移到另一個(gè)位置(x,y)的變換。tx=x-x,ty=y-y稱為平移距離。平移變換公式為:yxtyytxx,(x,y)(x,y)0xy圖3.1 平移(2)旋轉(zhuǎn)(rotation)旋轉(zhuǎn)是以某個(gè)參考點(diǎn)為圓心,將對(duì)象上的各點(diǎn)(x,y)圍繞圓心轉(zhuǎn)動(dòng)一個(gè)逆時(shí)針角度,變?yōu)樾碌淖鴺?biāo)(x,y)的變換。當(dāng)參考點(diǎn)為(0,0)時(shí),旋轉(zhuǎn)的公式為:si

12、ncoscossin)sin(sinsincoscos)cos(arararyarararx因?yàn)閤=rcosa,y=rsina,所以上式可轉(zhuǎn)化為:sincossincosxyyyxx如果參考點(diǎn)不是(0,0),而是任意一點(diǎn)(xr,yr),那么繞(xr,yr)點(diǎn)的旋轉(zhuǎn)由3個(gè)步驟:a、將對(duì)象平移tx=-xr,ty=-yrb、按式(3.2)做旋轉(zhuǎn)變換c、平移tx=xr,ty=yr。組合這3個(gè)步驟的公式為(3.2)sin)(cos)(sin)(cos)(rrrrrrxxyyyyyyxxxxa(x,y)(x,y)0yx圖3.2 旋轉(zhuǎn)(3)變比(scaling)變比是使對(duì)象按比例因子(sx,sy)放大或縮小

13、的變換,公式:yxsyysxx.,.按式(3.3)做變比變換時(shí),不僅對(duì)象的大小變換,而且,對(duì)象離原點(diǎn)的距離也發(fā)生了變換。如果只希望變換對(duì)象的大小,而不改變對(duì)象離原點(diǎn)的距離,稱為固定點(diǎn)變比(scaling relative to a fixed point)。以a為固定點(diǎn)進(jìn)行變比的方法:1、做平移tx=-xa,ty=-ya2、按式(3.3)做變比3、做(1)的逆變換,即做平移tx=xa,ty=ya(3.3)(x,y)(x,y)y0x圖3.3 變比當(dāng)變比因子sx或sy小于0時(shí),對(duì)象不僅變化太小,而且分別按x軸或y軸被反射。下圖(a)表示當(dāng)sy=-1,sx=1時(shí)的變化,按x軸反射;(b)表示當(dāng)sy=

14、1,sx=-1時(shí)的變化,按y軸反射;(c)表示當(dāng)sx=-1,sy=-1時(shí)按原點(diǎn)(0,0)反射。x0y(a)x軸反射0y0yxx(b)y軸反射(c)原點(diǎn)反射2、變換矩陣上述三種基本變換公式都可以表示為33的變換矩陣和齊次坐標(biāo)相乘的形式。1)平移的矩陣運(yùn)算形式1010001 1 , 1 , , yxttyxyx簡(jiǎn)記為p=p.t(tx,ty)。其中,p=x,y,1,p=x,y,11010001),(yxyxttttt表示平移矩陣。2)旋轉(zhuǎn)的矩陣運(yùn)算表示為1000cossin0sincos.1 , 1 , , yxyx簡(jiǎn)記為p=p.r(),其中r()表示旋轉(zhuǎn)矩陣。3)變比的矩陣運(yùn)算表示為1000000

15、 1 , 1 , , yxssyxyx簡(jiǎn)記為p=p.s(sx,sy),其中s(sx,sy)表示變比矩陣。3、級(jí)聯(lián)變換(composite transformation)由基本變換構(gòu)成的連續(xù)變換序列稱為級(jí)聯(lián)變換。一個(gè)比較復(fù)雜的變換需要連續(xù)的進(jìn)行若干個(gè)基本變換才能實(shí)現(xiàn),也就是要經(jīng)過級(jí)聯(lián)變換。變換的矩陣形式使得級(jí)聯(lián)變換的工作量大為減少。以繞任意點(diǎn)旋轉(zhuǎn)變換為例,本應(yīng)該進(jìn)行如下3次變換:),(. )(. ),(.rrrryxtpprppyxtpp(3.4)(3.5)(3.6)將式(3.4)(3.5)代入(3.6)得),().().,(. rrrryxtryxtpp令).().().,(rrrrcyxtr

16、yxttctpp. tc稱為級(jí)聯(lián)變換矩陣。3.1.2 三維圖形幾何變換1、旋轉(zhuǎn)分為三種基本旋轉(zhuǎn):繞z、y、x旋轉(zhuǎn)。下述旋轉(zhuǎn)公式設(shè)旋轉(zhuǎn)的參考點(diǎn)在所繞的軸上,繞軸轉(zhuǎn)角,方向是從軸所指處往原點(diǎn)看是逆時(shí)針。1、繞z軸旋轉(zhuǎn)的公式(簡(jiǎn)記rz())zzyxyyxxcossinsincos矩陣運(yùn)算的表達(dá)式1000010000cossin00sincos.1 , 1 , , , zyxzyx2、繞x軸旋轉(zhuǎn)的公式(簡(jiǎn)記rx())cossinsincoszyzzyyxx10000cossin00sincos00001.1 , 1 , , , zyxzyx3、繞y軸旋轉(zhuǎn)的公式(簡(jiǎn)記ry())sincoscossinx

17、zzyyxzx10000cos0sin00100sin0cos.1 , 1 , , , zyxzyx如果旋轉(zhuǎn)所繞的軸不是坐標(biāo)軸,而是一條任意軸。首先,對(duì)旋轉(zhuǎn)軸做平移和繞軸旋轉(zhuǎn)變換,使得所繞之軸與某一條標(biāo)準(zhǔn)軸重合;然后,繞該標(biāo)準(zhǔn)坐標(biāo)軸做所需角度的旋轉(zhuǎn);最后,通過逆變換使所繞之軸恢復(fù)到原來位置。需要7個(gè)基本變換的級(jí)聯(lián)才能完成。rx(a)ry()arz()xxxxxyyyyyzzzzzp2p2p2p1p2p2p1p1(a)初始狀態(tài)(b)p1點(diǎn)與原點(diǎn)重合p1(c)p1p2落入平面xoz(d)p1p2與z軸重合(e)繞p1p2軸角旋轉(zhuǎn)p12、旋轉(zhuǎn)設(shè)sx,sy,sz是3個(gè)坐標(biāo)軸方向的比例因子,則有:zyx

18、szzsyysxx.,.,.矩陣的表示為1000000000000.1 , 1 , , , zyxssszyxzyx簡(jiǎn)記為s(sx,sy,sz),對(duì)于某個(gè)非原點(diǎn)參數(shù)點(diǎn)(xf,yf,zf)進(jìn)行固定點(diǎn)變比變換,是通過如下級(jí)聯(lián)變換實(shí)現(xiàn)的:),(),(),(fffzyxfffzyxtsssszyxt下面介紹三維幾何變換的指令,與二維幾何變換類似,也有3條指令,分別如下:1、建立變換矩陣的指令creat-transformation-matrix(xf,yf,zf,sx,sy,sz,xr1,yr1,zr1,xr2,yr2,zr2,a,tx,ty,tz,matrix)其中,xf,yf,zf是固定點(diǎn)變比的固

19、定坐標(biāo);sx,sy,sz是變比參數(shù);xr1,yr1,zr1,xr2,yr2,zr2是旋轉(zhuǎn)所繞任意軸的起點(diǎn)與終點(diǎn)坐標(biāo);a是旋轉(zhuǎn)角度。matrix是返回的44矩陣。2、積累變換的指令accumulate-matrices-3(m1,m2,m)其中m1,m2是輸入矩陣,m是輸出矩陣,3個(gè)都是44矩陣,這條指令執(zhí)行如下功能:m=m1.m23、坐標(biāo)變換指令set-segment-transformation-3(id,matrix);其中id是物體的編號(hào),matrix是變換矩陣。這條指令將id所含的坐標(biāo)逐一與matrix相乘,從而實(shí)現(xiàn)三維幾何變換。3.1.3參數(shù)幾何變換前面介紹都是圖形幾何變換均是基于點(diǎn)

20、的變換。對(duì)于用參數(shù)表示的圖形幾何變換仍是基于點(diǎn)的,計(jì)算量和存儲(chǔ)空間都很大。1、圓錐曲線的幾何變換圓錐曲線的方程為022feydxcybxyax矩陣表示為01222222 1 ,yxfedecbdbayx簡(jiǎn)記為xsxt=0(1)平移變換平移矩陣為1010001nmtr則平移之后圓錐曲線方程為0ttrrxstxt(2)旋轉(zhuǎn)變換旋轉(zhuǎn)矩陣為1000cossin0sincosr則旋轉(zhuǎn)之后圓錐曲線方程為0ttxxrsr若對(duì)圓錐曲線相對(duì)(m,n)點(diǎn)做旋轉(zhuǎn)角變換,變換后圓錐曲線矩陣方程為0ttrtrxtrsrxt(3)比例變換對(duì)圓錐曲線相對(duì)(m,n)點(diǎn)進(jìn)行比例變換,比例變換矩陣為1000010yxtsss變換

21、后的圓錐曲線方程為0ttrtttrxtsssxt3.2坐標(biāo)系統(tǒng)及其變換zzryrx,sin,cos3.2.1坐標(biāo)系統(tǒng)坐標(biāo)系統(tǒng)的分類:按維度維度來分,可以分為一維坐標(biāo)系統(tǒng)、二維坐標(biāo)系統(tǒng)、三維坐標(biāo)系統(tǒng);按坐標(biāo)軸之間的坐標(biāo)軸之間的空間關(guān)系空間關(guān)系分為直角坐標(biāo)系統(tǒng)、圓柱坐標(biāo)系統(tǒng)、球坐標(biāo)系統(tǒng)。其中直角坐標(biāo)系統(tǒng)用的最多。圓柱坐標(biāo)系統(tǒng)與直角坐標(biāo)系統(tǒng)的關(guān)系為球坐標(biāo)系統(tǒng)與直角坐標(biāo)系統(tǒng)關(guān)系為cos,sinsin,cossinrzryrx世界坐標(biāo)系(world coordinate system)局部坐標(biāo)系(local coordinate system )觀察坐標(biāo)系( viewing coordinate sys

22、tem )成像面坐標(biāo)系屏幕坐標(biāo)系3.2.2規(guī)格化變換與設(shè)備坐標(biāo)變換計(jì)算機(jī)圖形學(xué)中,世界坐標(biāo)系和規(guī)格化設(shè)備坐標(biāo)系(normalized device coordinate,ndc)是兩個(gè)同時(shí)使用的坐標(biāo)系。世界坐標(biāo)系是設(shè)計(jì)者描述現(xiàn)實(shí)世界中的設(shè)計(jì)對(duì)象所用的坐標(biāo)系,其坐標(biāo)的范圍可以任意大小。規(guī)格化坐標(biāo)系是計(jì)算機(jī)圖形軟件描述設(shè)計(jì)對(duì)象所用的介質(zhì)。圖形硬件不同,設(shè)備的坐標(biāo)系也不同。為了使圖形軟件易于在不同設(shè)備之間移植,圖形軟件并不采用實(shí)際的設(shè)備坐標(biāo),而采用規(guī)格化設(shè)備坐標(biāo)。規(guī)格化設(shè)備坐標(biāo)定義x,y方向的變化范圍為01,從規(guī)格化設(shè)備坐標(biāo)到各種圖形硬件實(shí)際坐標(biāo)之間的映射由圖形軟件自動(dòng)實(shí)現(xiàn)。因此使用圖形軟件的用戶均

23、以規(guī)格化設(shè)備坐標(biāo)在各種圖形輸出與顯示設(shè)備上作圖。世界坐標(biāo)的范圍是無限大。為了使規(guī)格化設(shè)備坐標(biāo)上顯示的世界坐標(biāo)系中的物體有一個(gè)合適的范圍與大小,必須首先對(duì)世界坐標(biāo)系指定顯示范圍,它通常是個(gè)矩形。在世界坐標(biāo)系中這個(gè)矩形稱為窗口。在規(guī)格化設(shè)備坐標(biāo)系中這個(gè)矩形被稱為視區(qū)(view port)。圖形軟件根據(jù)窗口與視區(qū)的一一對(duì)應(yīng)關(guān)系,自動(dòng)實(shí)現(xiàn)從世界坐標(biāo)系到規(guī)格化設(shè)備坐標(biāo)的變換。這種從窗口到視區(qū)的變換稱為規(guī)格化變換(normalization transformation)。1、規(guī)格化變換1)指定窗口的大小與編號(hào)set-window(n,xw-min,xw-max,yw-min,yw-max)n為窗口編號(hào),

24、xw-minyw-max為窗口沿x方向y方向的最小值和最大值,這些參數(shù)均用世界坐標(biāo)。2)指定視區(qū)的大小與編號(hào)set-viewport(n,xv-min,xv-max,yv-min,yv-max)n為視區(qū)編號(hào),xv-minyv-max為視區(qū)x方向y方向的最小值和最大值,這些參數(shù)使用規(guī)格化設(shè)備坐標(biāo)。70.5-65-20.7540.250.710.50.8(a)窗口的坐標(biāo)(b)視區(qū)的坐標(biāo)圖3.9從a到b的標(biāo)準(zhǔn)化變換3)選擇規(guī)格化變換select-normalization-transformation(n)n是規(guī)格化變換的編號(hào),也即窗口和視區(qū)的編號(hào)。2、窗口操作1)視野的變換(zooming)變換視

25、野的效果改變窗口的4個(gè)參數(shù),令minmaxminmax,wwwwwwyyyxxx當(dāng) 變小時(shí),視區(qū)內(nèi)的物體就變大了,否則就變小。前者稱為zoom-in(視野變?。?,后者稱為zoom-out(視野變大)while(zoom-in)xw-max-;xw-min+;yw-max-;yw-min+;while(zoom-out)xw-max+;xw-min-;yw-max+;yw-min-;wwyx,2)搖鏡頭(panning)效果就像取景框在一張很大的圖紙上移動(dòng),它也改變4個(gè)參數(shù)dyyydyyydxxxdxxxwwwwwwwwminminmaxmaxminminmaxmax當(dāng)dx0時(shí),鏡頭往右移;dx

26、0時(shí),鏡頭往上移;dy0,鏡頭往下移。3)多重窗口(multiple window)對(duì)不同的窗口分別指定視區(qū),就在熒光屏上出現(xiàn)多窗口。設(shè)兩條折線p1,p2的坐標(biāo)存在4個(gè)數(shù)組x1,y1,x2,y2中,下列指令序列可以實(shí)現(xiàn)多重窗口效果。set-window(1,1,9,300,700);set-viewport(1,0.1,0.4,0.2,0.8);set-window(2,10,13,100,200);set-viewport(2,0.6,0.9,0.2,0.8);select-normalization-transformation(1);polyline(l1,x1,y1);select-n

27、ormalization-transformation(2);polyline(l2,x2,y2);0.10.4 0.8圖3.10一個(gè)屏幕上多個(gè)窗口視區(qū)顯示多重窗口的視區(qū)還可以重疊,操作內(nèi)容增加,如重疊層次改變與指定、視區(qū)拖動(dòng)以及大小的改變。這些內(nèi)容都涉及窗口內(nèi)容的恢復(fù)。除使用幀緩沖外,還需要更多內(nèi)存來保存非表面層窗口內(nèi)容,以做恢復(fù)之用。下面指令來指定視區(qū)的優(yōu)先級(jí):set-viewport-input-priority(nt1,nt2,hl)nt1、nt2是兩個(gè)標(biāo)準(zhǔn)化變換的名,hl可選higher或lower(higher意味著nt1優(yōu)先于nt2,否則nt2優(yōu)先nt1)。優(yōu)先

28、級(jí)可以傳遞繼承。3、從規(guī)格化坐標(biāo)(ndc)到設(shè)備坐標(biāo)(dc)的變換ndc變換成dc(即顯示器的像素坐標(biāo))變換關(guān)系如下:-1-aa0ny-1nx-110ndc像素圖3.12 ndc到dc的變換關(guān)系其中a=1,nx=1024,ny=768。規(guī)格化坐標(biāo)中的點(diǎn)(xin,yin)經(jīng)過平移(dx,dy)和比例變換(sx,sy),就可以得到設(shè)備坐標(biāo)系中的點(diǎn)(xout,yout)1)公式y(tǒng)inyoutxinxoutdysydxsx.,.若規(guī)格化坐標(biāo)中的兩點(diǎn)xin1和xin2變換到設(shè)備坐標(biāo)下為xout1和xout2,由于從規(guī)格化坐標(biāo)到設(shè)備坐標(biāo)的變化是線性變化,則有yndcydcxndcxdcinxoutxini

29、noutoutxdysydxsxxsxdxxxxs.)/()(111212注意3個(gè)方面的問題:(1)要考慮x、y方向上的實(shí)際像素?cái)?shù);(2)規(guī)格設(shè)備坐標(biāo)空間具有的幾何一致性不一定在設(shè)備坐標(biāo)空間中成立(因設(shè)備坐標(biāo)系中的像素不一定是正方形,例如圖3.12中像素高寬比是(nx-1)/(ny-1),常用微型計(jì)算機(jī)像素高寬比為768/1024)(3)實(shí)際應(yīng)用中規(guī)格設(shè)備坐標(biāo)和設(shè)備坐標(biāo)的方向相反。2)方向以圖3.12為例子,x方向,-1變成0,1變成nx-1,sx=(nx-1)/2,dx=(nx-1)/2;y方向,a變成0,-a變成ny-1,sy=(ny-1)/(-2a),dy=(ny-1)/2。3)設(shè)備坐標(biāo)

30、中像素中心的變換規(guī)格化坐標(biāo)系中的點(diǎn)變換到設(shè)備坐標(biāo)后應(yīng)在相應(yīng)位置的像素中心。x方向上,-1變成-0.5,1變成nx-0.5,sx=nx/2,dx=(nx-1)/2;y方向,a變成-0.5,-a變成ny-0.5,sy=-ny/(2a),dy=(ny-1)/2。3.2.3投影變換1、基本概念計(jì)算機(jī)圖形軟件中所采用的笛卡兒(cartesian)直角三維坐標(biāo)系系統(tǒng),按z軸方向不同分為:(1)右手系統(tǒng)xzy(2)左手系統(tǒng)xzy在三維坐標(biāo)系中,物體上各點(diǎn)都以3個(gè)分量(x,y,z)描述,此物體稱為三維物體。若將三維物體描述在二維平面上,必須對(duì)三維物體進(jìn)行投影。投影(project)是一種使三維對(duì)象映射為二維對(duì)

31、象的變換。 project(object(x,y,z) object(x,y)投影在視域坐標(biāo)系(也稱觀察坐標(biāo)系)內(nèi)進(jìn)行,視域坐標(biāo)系通常為一左手系,下面介紹的投影在左手坐標(biāo)系內(nèi)介紹。投影的要素除投影對(duì)象、投影面外,還有投影線。按照投影線的角度不同,有兩種基本投影方法:(1)平行投影(parallal projection)它使用一組平行投影線將三維對(duì)象投影到投影平面上。(2)透視投影(perspective projection)它使用一組由投影中心產(chǎn)生的放射投影線,將三維對(duì)象投影到投影平面上。圖3.14 兩種基本投影p1p2p1p2p1p2p1p2o由平行投影方法表現(xiàn)三維對(duì)象的圖,稱為正視圖和

32、軸測(cè)圖。由透視投影方法表現(xiàn)三維對(duì)象的圖,稱為透視圖。下面討論中,假設(shè)投影面與xoy面重合,即在投影面上z=0。2、平行投影變換按照標(biāo)準(zhǔn)線與投影面的夾角不同,平行投影分為正交平行投影和斜交平行投影兩類。1)正交平行投影(orthographic p.p.)投影線與投影面成90度角,一個(gè)三維點(diǎn)(x,y,z)正交平行投影法投影到平面xoy上,得到一個(gè)二維點(diǎn)(xp,yp)xp=x,yp=y,zp=0同理也可以將三維物體正交平行投影到xoz和yoz平面上,分別獲得平視圖和側(cè)視圖。設(shè)計(jì)中常用正交平行投影來產(chǎn)生三視圖,稱為正視圖。2)斜交平行投影(oblique p.p.)投影線與投影面成a角。一個(gè)三維點(diǎn)(

33、x,y,z)以斜交平行投影方法投影到投影面上,形成投影坐標(biāo)(xp,xp,zp)。斜交平行投影也稱軸測(cè)投影,所獲得圖稱為軸測(cè)圖。3、透視投影變換設(shè)投影中心在z軸負(fù)軸上,投影中心c到坐標(biāo)原點(diǎn)o的距離為d。為求透視投影變換公式,先列出直線pc的參數(shù)化方程:udzzzyyyxxxuu)(,參數(shù)u變化范圍01,當(dāng)u=0時(shí),(x,y,z)等于(x,y,z),即p點(diǎn);當(dāng)u=1時(shí),(x,y,z)等于(0,0,-d),即c點(diǎn)。因此u值表示直線pc上的位置。doxyzcp(x,y,z)p(x,y,z)圖3.15 透視投影3.3圖元輸出與輸出屬性3.3.1二維圖元輸出圖元是圖形軟件用于組織和操作畫面的最基本的素材。

34、一幅畫面有圖元組成,圖元是一組最簡(jiǎn)單的、最通用的幾何圖形或字符。圖形軟件中常用的圖元有l(wèi)ine(直線段)、polyline(折線)、text(字符串)、fill area(色塊)、polymarker(符號(hào)的軌跡)、move(現(xiàn)行位置的定位)、cell array(像素矩陣)、circle(圓)。每種圖元都有一系列參數(shù)描述,這些參數(shù)由兩類命令定義:一類是輸出圖元命令,它描述了圖元的種類及最重要、也是變化最頻繁的參數(shù),如直線的端點(diǎn)坐標(biāo)。另一類是圖元性質(zhì)定義命令,它描述了圖元的其余性質(zhì),如直線的寬度、線型等。用戶定義的二維圖元的窗口區(qū)到視圖區(qū)的輸出過程如下:應(yīng)用程序得到的坐標(biāo)(uc) 對(duì)窗口區(qū)進(jìn)行

35、裁剪(wc)窗口區(qū)到視圖區(qū)的規(guī)格化變換(ndc)視圖區(qū)的規(guī)格化坐標(biāo)系到設(shè)備坐標(biāo)系的變換(dc)調(diào)用基本圖元生成算法在圖形設(shè)備上輸出圖形輸出圖元的命令:(1)move(x,y)定義當(dāng)前位置為(x,y)。啟動(dòng)圖形軟件后當(dāng)前位置自動(dòng)定義為(0,0)(2)line(x,y)以當(dāng)前位置為起點(diǎn),(x,y)為終點(diǎn)畫一直線,如果兩點(diǎn)重合,則畫一點(diǎn)(3)polyline(n,x_array,y_array)x_array、y_array為兩個(gè)一維數(shù)組,每個(gè)數(shù)組長(zhǎng)度為n。本命令畫一條有n+1個(gè)頂點(diǎn)(包括兩個(gè)端點(diǎn))的折線。第1個(gè)頂點(diǎn)在當(dāng)前位置,其余n個(gè)頂點(diǎn)的位置有x_array和y_array中的值決定。3.3.2

36、輸出屬性及其控制1、圖元的輸出屬性常見的定義圖元屬性的命令:1)直線的屬性(1)線類型set_linetype(linetype),其中l(wèi)inetype可以為solid(實(shí)線)dotted(點(diǎn)線)dashed(虛線) dotdashed(點(diǎn)劃線)(2)線色彩set_line_color_index(pc),其中pc是查色表的地址,通常是一個(gè)范圍在0255。(3)線寬度set_line_width(linewidth),其中l(wèi)inewidth是標(biāo)準(zhǔn)線寬的倍數(shù)。2)定義查色表的內(nèi)容指令為set_color_representation(ci,r,g,b)定義地址為ci單元的色彩代碼,其中ci為查色

37、表地址,r、g、b分別為紅綠藍(lán)的色代碼,任何一種顏色都可由r、g、b三原色按不同比例混合而成。最普通的一種取值范圍是ci、r、g、b為02553)多邊形填色的屬性(1)多邊形填色風(fēng)格set_polygon_interior_style(style),style取值范圍為solid(單色)、hollow(不填色)、pattern(填圖案)(2)多邊形的色彩set_polygon_color_index(color)(3)多邊形的圖案set_polygon_pattern_index(pid),其中pid是一個(gè)圖案的編號(hào)(4)圖案內(nèi)容set_pattern_representation(pid,n

38、x,ny,cp),這條命令將圖案的編號(hào)pid和它的內(nèi)容(放在cp之內(nèi))對(duì)應(yīng)起來。cp是一個(gè)二維數(shù)組,大小為1,2,nx1,2,ny,每個(gè)元素對(duì)應(yīng)一個(gè)像素。其中cp描述了一個(gè)用像素矩陣表示圖案的構(gòu)成。(5)圖案的位置set_pattern_reference_point(xp,yp),確定了圖案的左下角點(diǎn)在屏幕坐標(biāo)上的(xp,yp)例:將右圖所示圖案填入一個(gè)頂點(diǎn)坐標(biāo)在x1.10y110中的多邊形。2121首先將圖案的編碼存放在一個(gè)數(shù)組pattern中,然后利用上述命令填入多邊形。pattern1,1=1pattern1,2=0pattern2,1=0pattern2,2=1set_pattern

39、_representation(1,2,2,pattern)set_polygon_interior_style(pattern)set_polygon_pattern_index(1)set_pattern_reference_point(0,0)fill_area(10,x,y)4)字符的屬性(1)字型set_text_font(tf),其中tf可以取roman(羅馬型)、greek(希臘型)、script(手書型)、old english(老體)(2)字符色彩set_text_color_index(tc), tc為查色表的地址(3)字符大小set_charsize(width,height),wi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論