第三章圖形變換_第1頁
第三章圖形變換_第2頁
第三章圖形變換_第3頁
第三章圖形變換_第4頁
第三章圖形變換_第5頁
已閱讀5頁,還剩102頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章圖形變換

右手系左手系

第一節(jié)變換的數(shù)學(xué)基礎(chǔ)

一、向量及向量運(yùn)算

設(shè)有向量,有關(guān)的向量運(yùn)算有:1)

向量的長度2)兩個(gè)向量的和差運(yùn)算3)

兩個(gè)向量的點(diǎn)乘積

4)兩個(gè)向量的叉乘積二、矩陣及矩陣運(yùn)算由個(gè)數(shù)排成的矩形表有關(guān)的矩陣運(yùn)算有:

數(shù)乘矩陣矩陣的加法運(yùn)算矩陣的乘法運(yùn)算設(shè)有矩陣、,則這兩個(gè)矩陣的乘積矩陣為:矩陣運(yùn)算具有如下基本性質(zhì):數(shù)乘矩陣適合分配律和結(jié)合律,即:

矩陣的加法適合交換律和結(jié)合律,其中,,為矩陣。矩陣的乘法適合結(jié)合律,即:

矩陣的乘法對(duì)加法適合分配律,即:

矩陣的乘法不適合交換律

逆矩陣

對(duì)任意矩陣,如果存在,則稱為的逆矩陣。轉(zhuǎn)置矩陣將矩陣的行、列互換而得到的階矩陣稱作的轉(zhuǎn)置矩陣,記為。單位矩陣

矩陣的轉(zhuǎn)置具有如下幾個(gè)基本性質(zhì):三、齊次坐標(biāo)齊次坐標(biāo)表示法就是用維向量表示一個(gè)維向量。n維空間中的點(diǎn)的位置向量用非齊次坐標(biāo)表示時(shí),具有n個(gè)坐標(biāo)分量,并且是唯一的。如果用齊次坐標(biāo)表示時(shí),該向量有n+1個(gè)坐標(biāo)分量,并且是不唯一的。如二維點(diǎn)的齊次坐標(biāo)表示為,則,,…,都是表示二維空間中的同一個(gè)點(diǎn).

三維空間中的坐標(biāo)點(diǎn)的齊次坐標(biāo)可表示為.應(yīng)用齊次坐標(biāo)可以有效地用矩陣運(yùn)算把二維、三維甚至更高維空間中點(diǎn)集從一個(gè)坐標(biāo)系轉(zhuǎn)換到另一個(gè)坐標(biāo)系中。第二節(jié)二維圖形變換對(duì)一個(gè)圖形作幾何變換就是對(duì)該圖形上的每一個(gè)點(diǎn)作相應(yīng)的幾何變換。

常見的基本二維圖形幾何變換有平移變換、比例變換和旋轉(zhuǎn)變換。

平移變換比例變換旋轉(zhuǎn)變換平移變換比例變換旋轉(zhuǎn)變換可以用、、來表示平移、比例、旋轉(zhuǎn)這三種基本的幾何變換。多數(shù)常見的二維幾何變換都可以通過這三種基本幾何變換的組合來達(dá)到。

比例變換和旋轉(zhuǎn)變換都是相對(duì)于坐標(biāo)原點(diǎn)進(jìn)行的,如果希望相對(duì)于任意一點(diǎn)作變換,可以先平移到原點(diǎn),相對(duì)于原點(diǎn)作變換后,再平移回去。相對(duì)于任意一點(diǎn)的比例變換和旋轉(zhuǎn)變換矩陣如下:

對(duì)稱變換錯(cuò)切變換

平移變換只改變圖形的位置,不改變圖形的大小和幾何形狀;旋轉(zhuǎn)變換也保持了圖形的大小和幾何形狀;比例變換改變了圖形的大小和幾何形狀;錯(cuò)切變換將引起圖形各部分之間角度關(guān)系的變化,會(huì)導(dǎo)致圖形發(fā)生畸變;拓?fù)洳蛔兊膸缀巫儞Q不改變圖形的連接關(guān)系和平行關(guān)系。

第三節(jié)二維視見變換

窗口就是在用戶坐標(biāo)系中指出的那個(gè)要顯示出來的區(qū)域,這一區(qū)域通常為矩形區(qū)域。

視見區(qū)是屏幕域中的一個(gè)子區(qū)域,通常為矩形區(qū)域,它最大與屏幕域等同。視見區(qū)用于顯示窗口中的圖形。窗口與視見區(qū)的差別在于,窗口是在用戶坐標(biāo)系中確定的,它指出了要顯示的圖形;而視見區(qū)在設(shè)備坐標(biāo)系中確定,它指出了實(shí)際顯示的圖形處于顯示屏幕的哪一部分。

視見變換就是將用戶坐標(biāo)系窗口內(nèi)的圖形變換到顯示屏幕設(shè)備坐標(biāo)系的視見區(qū)中以產(chǎn)生顯示。設(shè)窗口中圖形上的某一點(diǎn)坐標(biāo)為,該點(diǎn)顯示在視見區(qū)中的坐標(biāo)為,利用視見變換矩陣可得出以下計(jì)算公式:第四節(jié)三維圖形變換平移變換比例變換旋轉(zhuǎn)變換繞Z軸旋轉(zhuǎn)繞X軸旋轉(zhuǎn)繞Y軸旋轉(zhuǎn)

設(shè)三維空間中有一條任意直線,它由直線上一點(diǎn)Q和沿直線方向的單位方向向量n確定。Q點(diǎn)坐標(biāo)為,直線向量,

以這條直線為旋轉(zhuǎn)軸做旋轉(zhuǎn)角的旋轉(zhuǎn)變換。實(shí)現(xiàn)該變換可以先做平移變換,使旋轉(zhuǎn)軸成為通過坐標(biāo)原點(diǎn)的一條直線,然后做繞通過坐標(biāo)原點(diǎn)的旋轉(zhuǎn)軸旋轉(zhuǎn)角的旋轉(zhuǎn)變換,最后再做平移變換,即開始所作平移變換的逆變換,使旋轉(zhuǎn)軸平移回到原來的位置。

過坐標(biāo)原點(diǎn)的任意直線為旋轉(zhuǎn)軸的旋轉(zhuǎn)變換可分為五步實(shí)現(xiàn):(1)

做繞X軸旋轉(zhuǎn)角的變換,使旋轉(zhuǎn)軸落在Y=0上。(2)

做繞Y軸旋轉(zhuǎn)角的變換,使旋轉(zhuǎn)軸與Z軸重合。(3)

做繞Z軸旋轉(zhuǎn)角的旋轉(zhuǎn)變換。(4)

做第2步的逆變換,即做繞Y軸-旋轉(zhuǎn)變換。(5)

做第1步的逆變換,即做繞X軸-旋轉(zhuǎn)變換。第五節(jié)投影

投影就是把n維空間中的點(diǎn)投射到小于n維的空間中去。投影是如下形成的:首先在三維空間中確定一個(gè)投影中心和一個(gè)投影平面,然后從投影中心引出一些投射直線,這些直線通過形體上的每一點(diǎn),與投影平面相交,在投影平面上就形成了形體的投影。根據(jù)投影中心與投影平面之間距離的不同,投影可以分為平行投影和透視投影。

平行投影當(dāng)投影中心與投影平面的距離為無窮遠(yuǎn)時(shí),投射直線成為一組平行線.

透視投影當(dāng)投影中心與投影平面的距離是有限數(shù)值時(shí),投射直線交于一點(diǎn),形成滅點(diǎn).

平行投影正交投影和斜交投影

正交投影投影方向與投影平面的法向相同.常見的正交投影是正視投影、頂視投影和側(cè)視投影如果投影平面Z=0,投影方向是沿Z軸,設(shè)三維空間中有普通坐標(biāo)為的一點(diǎn)P,投影后,成為點(diǎn)P’,普通坐標(biāo)為,可知:投影平面垂直于坐標(biāo)軸的正交投影稱為正投影。正交投影還有另一種常見的情形是等軸投影,這種投影要求投影平面的法線方向,即投影方向與三個(gè)坐標(biāo)軸的夾角都相等。這種投影能使在三個(gè)坐標(biāo)軸方向上有相等透視縮短。斜交投影

當(dāng)平行投影中投影平面的法線方向與投影方向不同時(shí)就得到斜交投影。在斜交投影中,投影平面一般取坐標(biāo)平面。

設(shè)三維空間中有普通坐標(biāo)為的任意一點(diǎn),經(jīng)斜交投影后所得投影點(diǎn)普通坐標(biāo)為。顯然,有:

斜交投影中兩個(gè)比較重要的情形是斜二測(cè)投影和斜等軸投影。斜二測(cè)投影使垂直于投影平面的線段長度縮短為原來的一半;斜等軸投影使垂直于投影平面的線段仍保持長度.透視投影透視投影中,任意一組平行直線,如果平行于投影平面,則經(jīng)投影后所得到的直線或者重合,或者仍保持平行;如果不平行于投影平面,將不再保持平行。實(shí)際上任意一組不平行于投影平面的平行直線,投影后所得直線,必將會(huì)匯聚于同一點(diǎn),這個(gè)點(diǎn)稱為消失點(diǎn),也稱為滅點(diǎn)。空間中可以取得任意多組不平行于投影平面的平行直線,所以消失點(diǎn)也可以取得任意多個(gè)。

引入三維直角坐標(biāo)系后,在透視投影中,如果一組平行直線平行于三個(gè)坐標(biāo)軸中的一個(gè),那么對(duì)應(yīng)的消失點(diǎn)將落在坐標(biāo)軸上,這樣的消失點(diǎn)稱為主消失點(diǎn)。因?yàn)橹挥腥齻€(gè)坐標(biāo)軸,所以最多只有三個(gè)主消失點(diǎn)。根據(jù)主消失點(diǎn)的數(shù)目,透視投影可以分為一點(diǎn)透視、二點(diǎn)透視、三點(diǎn)透視。如果投影平面截Z軸并與它垂直,這時(shí)就只能在Z軸方向上有主消失點(diǎn)。

單消失點(diǎn)的透視投影計(jì)算左手坐標(biāo)系下,投影中心是坐標(biāo)原點(diǎn),投影平面垂直于Z軸。設(shè)投影平面位于處Z=d,可設(shè)d>0。這樣投影平面是平面Z=d,對(duì)空間中任意一點(diǎn),其普通坐標(biāo)為,它在投影平面上的投影點(diǎn)的普通坐標(biāo)為。

利用后兩個(gè)圖中三角形的相似關(guān)系,可以得出:使用齊次坐標(biāo)可以得出:對(duì)齊次坐標(biāo)進(jìn)行規(guī)范化后得:透視投影變換矩陣為:實(shí)用中常取Z=0為投影平面,這時(shí)投影中心可取空間中任意一點(diǎn),這里假定了是一個(gè)負(fù)數(shù)即,當(dāng)然這個(gè)假定并不是必要的。用前面相同的方法,可以得出:可以用齊次坐標(biāo)驗(yàn)證,有:將結(jié)果規(guī)范化后得到齊次坐標(biāo)為:第六節(jié)裁剪

裁剪就是去掉窗口外的不可見部分,保留窗口內(nèi)的可見部分的過程。

裁剪區(qū)域:矩形、任意圖形裁剪對(duì)象:點(diǎn)、線段、多邊形、二維或三維形體

假設(shè)窗口的兩個(gè)對(duì)角頂點(diǎn)分別是、,則同時(shí)滿足下列不等式的點(diǎn)是要保留的點(diǎn),否則就要被舍棄:

直線段裁剪算法

Cohen-Sutherland算法

該算法的基本思想是:首先判斷直線段是否全部在窗口內(nèi),是,則保留;不是,則再判斷是否完全在窗口之外,如是,則舍棄。如果這兩種情況都不屬于,則將此直線段分割,對(duì)分割后的子線段再進(jìn)行如前判斷。直至所有直線段和由直線段分割出來的子線段都已經(jīng)確定了是保留還是舍棄為止。

編碼:如果該區(qū)域在窗口的上方,則代碼的第一位為1;如果該區(qū)域在窗口的下方,則代碼的第二位為1;如果該區(qū)域在窗口的右側(cè),則代碼的第三位為1;如果該區(qū)域在窗口的左側(cè),則代碼的第四位為1。

算法步驟如下:第一步:編碼第二步:判別第三步:求交第四步:對(duì)剩下的線段重復(fù)以上各步.

算法的程序?qū)崿F(xiàn)如下函數(shù)Cohen_Sutherland用來實(shí)現(xiàn)算法函數(shù)makecode用來編碼,利用數(shù)值位運(yùn)算doublexl,xr,yt,yb;(事先給出窗口的位置,四個(gè)數(shù)值是已知的)voidCohen_Sutherland(doublex0,y0,x2,y2){intc,c1,c2;doublex,y;makecode(x0,y0,c1);makecode(x2,y2,c2);while(c1!=0||c2!=0){if(c1&c2!=0)return;c=c1;if(c==0)c=c2;if(c&1==1){y=y0+(y2-y0)*(x1-x0)/(x2-x0);x=x1;}elseif(c&2){y=y0+(y2-y0)*(xr-x0)/(x2-x0);x=xr;}elseif(c&4){x=x0+(x2-x0)*(yb-y0)/(y2-y0);y=yb;}elseif(c&8){x=x0+(x2-x0)*(yt-y0)/(y2-y0);y=yt;}if(c==c1){x0=x;y0=y;makecode(x,y,c1);}else{x2=x;y2=y;makecode(x,y,c2);}}showline(x0,y0,x2,y2);//顯示可見線段}voidmakecode(doublex,y;intc){c=0;if(x<xl)c=1;elseif(x>xr)c=2;if(y<yb)c=c+4;elseif(y>yt)c=c+8;}設(shè)要裁剪的直線段為。中點(diǎn)分割算法的基本思想如下:可分成兩個(gè)過程平行進(jìn)行,即從點(diǎn)出發(fā)找出離點(diǎn)最近的可見點(diǎn),和從點(diǎn)出發(fā)找出離點(diǎn)最近的可見點(diǎn)。這兩個(gè)最近可見點(diǎn)的連線就是原直線段的可見部分。從出發(fā)找最近可見點(diǎn)的方法是先求的中點(diǎn),若不能定為顯然不可見,則取代替,否則取代替,再對(duì)新的求中點(diǎn)。重復(fù)上過程,直到長度小于給定的小數(shù)為止。

梁友棟-Barsky算法

設(shè)要裁剪的直線段為P0P1,Pi的坐標(biāo)為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論