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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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)

向量的長(zhǎng)度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ì)任意矩陣,如果存在,則稱(chēng)為的逆矩陣。轉(zhuǎn)置矩陣將矩陣的行、列互換而得到的階矩陣稱(chēng)作的轉(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)的幾何變換。

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

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

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

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

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

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

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

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

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

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

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

過(guò)坐標(biāo)原點(diǎn)的任意直線(xià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è)投影平面,然后從投影中心引出一些投射直線(xiàn),這些直線(xiàn)通過(guò)形體上的每一點(diǎn),與投影平面相交,在投影平面上就形成了形體的投影。根據(jù)投影中心與投影平面之間距離的不同,投影可以分為平行投影和透視投影。

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

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

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

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

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

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

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

引入三維直角坐標(biāo)系后,在透視投影中,如果一組平行直線(xiàn)平行于三個(gè)坐標(biāo)軸中的一個(gè),那么對(duì)應(yīng)的消失點(diǎn)將落在坐標(biāo)軸上,這樣的消失點(diǎn)稱(chēng)為主消失點(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é)裁剪

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

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

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

直線(xiàn)段裁剪算法

Cohen-Sutherland算法

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

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

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

算法的程序?qū)崿F(xiàn)如下函數(shù)Cohen_Sutherland用來(lái)實(shí)現(xiàn)算法函數(shù)makecode用來(lái)編碼,利用數(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);//顯示可見(jiàn)線(xiàn)段}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è)要裁剪的直線(xiàn)段為。中點(diǎn)分割算法的基本思想如下:可分成兩個(gè)過(guò)程平行進(jìn)行,即從點(diǎn)出發(fā)找出離點(diǎn)最近的可見(jiàn)點(diǎn),和從點(diǎn)出發(fā)找出離點(diǎn)最近的可見(jiàn)點(diǎn)。這兩個(gè)最近可見(jiàn)點(diǎn)的連線(xiàn)就是原直線(xiàn)段的可見(jiàn)部分。從出發(fā)找最近可見(jiàn)點(diǎn)的方法是先求的中點(diǎn),若不能定為顯然不可見(jiàn),則取代替,否則取代替,再對(duì)新的求中點(diǎn)。重復(fù)上過(guò)程,直到長(zhǎng)度小于給定的小數(shù)為止。

梁友棟-Barsky算法

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論