版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2024/12/141計算機圖形學(xué)
圖形變換第一節(jié)齊次坐標第二節(jié)二維圖形變換第三節(jié)二維視見變換第四節(jié)三維圖形變換第五節(jié)投影變換第六節(jié)裁剪3D
觀察坐標系3D本體坐標系(模型坐標系)3D用戶坐標系(世界坐標系)本體坐標系 也稱模型坐標系,是為規(guī)定基本形體而引入的便于描述的坐標系。用戶坐標系 也稱世界坐標系,是用戶引入描述整個形體的坐標系。觀察坐標系 也稱視坐標系或目坐標系,為說明觀察的姿態(tài)而引入,也就是觀察者所處的位置。3D
觀察坐標系3D本體坐標系(模型坐標系)3D用戶坐標系(世界坐標系)設(shè)備坐標系 也稱顯示器坐標系或屏坐標系,是各種圖形設(shè)備自身規(guī)定的在顯示表面上采用的坐標系。要顯示的景物最終要在這個坐標系中顯示出來。規(guī)范化設(shè)備坐標系 不同圖形設(shè)備的設(shè)備坐標系一般不同,圖形系統(tǒng)為了使繪制與具體設(shè)備無關(guān)而引入的坐標系,約定它是二維正方形,即各坐標范圍規(guī)定為從0至1。右手系左手系左手系:在計算機圖形學(xué)中,通常約定為假想眼睛位于原點,x軸方向是水平向右,y軸方向豎直向上,z軸方向離開眼睛射向前方,這樣形成的觀察坐標系是左手系。(本書采用左手系)右手系:如果讓z軸的方向面向眼睛方向,這樣得到的觀察坐標系就是右手系。坐標系圖形(幾何)變換:為了從不同方向去觀察對象,而對對象所作的旋轉(zhuǎn)、放大、縮小和平移等變換。將景物在本體坐標系中的描述轉(zhuǎn)變?yōu)樵谟脩糇鴺讼抵械拿枋?。投影變換:三維圖形投影在二維投影平面上的變換。將景物在用戶坐標系中的描述轉(zhuǎn)變?yōu)樵谟^察坐標系中的描述。視見變換:繪圖過程中要用窗口來規(guī)定要顯示的內(nèi)容,用視區(qū)來規(guī)定在屏幕上顯示的位置所應(yīng)用的變換。將景物在觀察坐標系中的描述轉(zhuǎn)變?yōu)樵谠O(shè)備坐標系中的描述。圖形顯示的坐標變換過程圖形(幾何)變換投影變換視見變換齊次坐標表示法就是用n+1維向量表示一個n維向量。
n維空間中的點的位置向量用非齊次坐標表示時,(P1,P2,…,Pn)具有n個坐標分量,并且是唯一的。如果用齊次坐標表示時,該向量有n+1個坐標分量,(hP1,hP2,…,hPn,h)并且是不唯一的。 通常都使h=1。如果h≠0,就可以用除齊次坐標的各分量,這一方法稱之為齊次坐標的規(guī)范化。經(jīng)過規(guī)范化后的齊次坐標就是唯一的。第一節(jié)、齊次坐標 如二維點(x,y)的齊次坐標表示為(hx,hy,h),則(h1x,h1y,h1),(h2x,h2y,h2),…,(hmx,hmy,hm)都是表示二維空間中的同一個點三維空間中的坐標點的齊次坐標可表示為(x,y,1)。 應(yīng)用齊次坐標可以有效地用矩陣運算把二維、三維甚至更高維空間中點集從一個坐標系轉(zhuǎn)換到另一個坐標系中。第一節(jié)、齊次坐標二維齊次坐標變換矩陣的形式為三維齊次坐標變換矩陣的形式為第二節(jié)二維圖形變換
對一個圖形作幾何變換就是對該圖形上的每一個點作相應(yīng)的幾何變換。
常見的基本二維圖形幾何變換有平移變換、比例變換和旋轉(zhuǎn)變換。
平移變換比例變換旋轉(zhuǎn)變換1.平移變換2.比例變換3.旋轉(zhuǎn)變換
可以用、、來表示平移、比例、旋轉(zhuǎn)這三種基本的幾何變換。多數(shù)常見的二維幾何變換都可以通過這三種基本幾何變換的組合來達到。
比例變換和旋轉(zhuǎn)變換都是相對于坐標原點進行的,如果希望相對于任意一點作變換,可以先平移到原點,相對于原點作變換后,在平移回去。例一:求圖形繞平面上任意一點(x0,y0)的旋轉(zhuǎn)變換矩陣,設(shè)旋轉(zhuǎn)角度為(1)平移T(-x0,-y0),使旋轉(zhuǎn)中心與原點重合(2)繞原點逆時針旋轉(zhuǎn)R()(3)平移T(x0,y0),使旋轉(zhuǎn)中心移回原處
例二:相對于平面上任意一點的比例變換如下:(1)平移T(-x0,-y0),使比例中心與原點重合(2)相對于原點的比例變換(3)平移T(x0,y0),比例中心移回原處常見的變換1.對稱變換(反射、鏡像變換)
2.錯切變換(錯移變換)(1)沿X軸方向關(guān)于Y的錯切(Y不變)(2)沿Y軸方向關(guān)于X的錯切(X不變)(3)沿X軸Y軸兩個方向的錯切二維圖形變換總結(jié)平移變換:只改變圖形的位置,不改變圖形的大小和幾何形狀;旋轉(zhuǎn)變換:保持圖形的大小和幾何形狀;比例變換:改變圖形的大小和幾何形狀;錯切變換:引起圖形各部分之間角度關(guān)系的變化,會導(dǎo)致圖形發(fā)生畸變;拓撲不變的幾何變換不改變圖形的連接關(guān)系和平行關(guān)系。平移、旋轉(zhuǎn)、比例、錯切變換都屬于拓撲不變的幾何變換。二維圖形變換總結(jié):第三節(jié)二維視見變換視見變換:就是將觀察坐標系窗口中指定的圖形轉(zhuǎn)換至設(shè)備坐標系視區(qū)中顯示的過程。(DonaldHearn)窗口就是在觀察坐標系中指出的要顯示出來的區(qū)域,這一區(qū)域通常為矩形區(qū)域。視見區(qū)是屏幕域中的一個子區(qū)域,通常為矩形區(qū)域,它最大與屏幕域等同。投影平面屏幕Viewport窗口到視見區(qū)窗口與視見區(qū)的差別:窗口:在觀察坐標系中確定,它指出了要顯示的圖形;視見區(qū):在設(shè)備坐標系中確定,它指出了實際顯示的圖形處于顯示屏幕的哪一部分。視見區(qū)用于顯示窗口中的圖形。設(shè)窗口中圖形上的某一點坐標為,該點顯示在視見區(qū)中的坐標為,利用視見變換矩陣可得出以下計算公式:第四節(jié)三維圖形變換
設(shè)三維空間中任意一點P的齊次坐標為P=(x,y,z,1),做了三維圖形幾何變換后得到的點P’的齊次坐標為P’=(x’,y’,z’,1),可得下面的三維圖形幾何變換矩陣。1.平移變換2.比例變換3.旋轉(zhuǎn)變換①繞Z軸旋轉(zhuǎn)
②繞X軸旋轉(zhuǎn)③繞Y軸旋轉(zhuǎn)例:設(shè)三維空間中有一條任意直線,它由直線上一點Q和沿直線方向的單位方向向量n確定。Q點坐標為,直線向量
求繞這條直線旋轉(zhuǎn)角的旋轉(zhuǎn)變換矩陣。1.實現(xiàn)該變換可以先做平移變換,使旋轉(zhuǎn)軸成為通過坐標原點的一條直線,然后做繞通過坐標原點的旋轉(zhuǎn)軸旋轉(zhuǎn)角的旋轉(zhuǎn)變換,最后再做平移變換,即開始所作平移變換的逆變換,使旋轉(zhuǎn)軸平移回到原來的位置。2.過坐標原點的任意直線為旋轉(zhuǎn)軸的旋轉(zhuǎn)變換可分為五步實現(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)變換。三維圖形變換旋轉(zhuǎn),比例,對稱,錯切變換平移變換投影變換整體比例變換第五節(jié)投影變換三維觀察過程:用戶(世界)坐標系→觀察坐標系(投影平面)投影:把n維空間中的點投射到小于n維的空間中去投影的形成:1.在三維空間中確定一個投影中心和一個投影平面,2.形體上的每一點與投影中心相連,這些連線稱為投射直線,它們與投影平面相交,在投影平面上就形成了形體的投影。投影中心投影平面投射直線投影中心與投影平面之間距離為dd無限平行投影,當投影中心與投影平面的距離為無窮遠時,投射直線成為一組平行線.投射線平行,立體感差,能保持比例關(guān)系投影平面投影平面投影方向投影中心與投影平面之間距離為dd有限透視投影,當投影中心與投影平面的距離是有限數(shù)值時,投射直線交于一點,形成滅點.立體感強,更真實,但不能保持原來的比例關(guān)系投影平面投影中心投影平面投影中心投影投影平面正投影投影平面斜投影正投影垂直于投影平面斜投影傾斜于投影平面一.平行投影(正投影和斜投影)一.平行投影(正投影和斜投影)1.正投影投影方向與投影平面的法向相同常見的正投影是正視投影、頂視投影和側(cè)視投影
如果投影平面Z=0,投影方向是沿Z軸,設(shè)三維空間中有普通坐標為(x,y,z)的一點P,投影后,成為點P’,普通坐標為(x’,y’,z’)可知:正視圖頂視圖側(cè)視圖垂直于投影平面的投影方向正投影xyz正投影:投影平面垂直于坐標軸的正交投影。等軸投影:投影平面的法線方向,即投影方向與三個坐標軸的夾角都相等。這種投影能使在三個坐標軸方向上有相等的透視縮短。
投影平面斜投影
2.斜投影
當平行投影中投影平面的法線方向與投影方向不同時就得到斜交投影。在斜交投影中,投影平面一般取坐標平面。XYZ
設(shè)三維空間中有普通坐標為的任意一點,經(jīng)斜交投影后所得投影點普通坐標為。顯然,有:
設(shè)三維空間中有普通坐標為的任意一點,經(jīng)斜交投影后所得投影點普通坐標為。顯然,有:OzxP(0,1)Q(lcosα,0)(x’,0)(x,z)(x,0)
設(shè)三維空間中有普通坐標為的任意一點,經(jīng)斜交投影后所得投影點普通坐標為。顯然,有:yzOP(0,1)R(lsinα,0)(y’,0)(y,z)(y,0)斜二測投影:垂直于投影平面的線段長度縮短為原來的一半;斜交投影中兩個比較重要的情形是斜二測投影和斜等軸投影。斜二測投影:垂直于投影平面的線段長度縮短為原來的一半;斜等軸投影:使垂直于投影平面的線段仍保持長度.
斜等軸投影投影方向(45)斜二測投影投影方向(63.4)二.透視投影性質(zhì):任意一組平行直線,如果平行于投影平面,則經(jīng)透視投影后所得到的直線或者重合,或者仍保持平行;如果不平行于投影平面,將不再保持平行,并且必會匯聚于同一點,這個點稱為消失點,也稱為滅點??臻g中可以取得任意多組不平行于投影平面的平行直線,所以消失點也可以取得任意多個。
主消失點:平行于一個坐標軸中的一組平行線對應(yīng)的消失點稱為主消失點。因為只有三個坐標軸,所以最多只有三個主消失點。根據(jù)主消失點的數(shù)目,透視投影可以分為一點透視、二點透視、三點透視。如果投影平面截Z軸并與它垂直,這時就只能在Z軸方向上有主消失點。
單消失點的透視投影計算左手坐標系投影中心是坐標原點投影平面垂直于Z軸 設(shè)投影平面位于處Z=d,可設(shè)d>0。對空間中任意一點P,其普通坐標為(x,y,z),它在投影平面上的投影點P’的普通坐標為(xp,yp,zp)
利用后兩個圖中三角形的相似關(guān)系,可以得出:使用齊次坐標可以得出:對齊次坐標進行規(guī)范化后得:透視投影變換矩陣為:同理易求當投影平面是平面x=d和y=d時,此時的透視投影變換矩陣分別為:實用中,常取z=0為投影平面,這時投影中心可取空間中任意一點(x0,y0,z0)。假定z0是一個負數(shù),即z0=-d,d>0。用前面相同的方法,可以得出:實用中,常取z=0為投影平面,這時投影中心可取空間中任意一點(x0,y0,z0)。假定z0是一個負數(shù),即z0=-d,d>0。用前面相同的方法,可以得出:可以用齊次坐標驗證,有:
將結(jié)果規(guī)范化后得到齊次坐標為:兩點透視
假設(shè)投影中心仍然在原點,而投影平面與y軸平行,而與x軸和z軸相交三點透視
設(shè)投影中心在原點
假設(shè)投影中心為,則三點透視投影的投影變換矩陣為投影總結(jié):
1平行投影
1)正交:正投影,等軸
2)斜交:斜二測,斜等軸
2透視投影
1)一點透視
2)二點透視
3)三點透視第六節(jié)裁剪
裁剪就是去掉窗口外的不可見部分,保留窗口內(nèi)的可見部分的過程。裁剪區(qū)域:矩形、任意圖形裁剪對象:點、線段、多邊形、二維或三維形體
假設(shè)窗口的兩個對角頂點分別是、,則同時滿足下列不等式的點是要保留的點,否則就要被舍棄:一、直線段裁剪算法
1.Cohen-Sutherland算法對象的可見性問題:①判斷直線段完全可見,若是,則繪制,結(jié)束,保留②判定完全不可見,若是,則不繪制,結(jié)束,舍棄③若①②都不滿足,部分可見,則求線段與窗口邊界線的交點(分割),對子線段繼續(xù)①~③,直至所有直線段和由直線段分割出來的子線段都已經(jīng)確定了是保留還是舍棄為止。Cohen-Sutherland算法算法步驟如下:第一步:編碼第二步:判別第三步:求交第四步:對剩下的線段重復(fù)以上各步1.編碼: 每個區(qū)域用一個4位二進制編碼來標識,代碼確定如下: 若區(qū)域在窗口上方:則第1位為1; 若區(qū)域在窗口下方:則第2位為1; 若區(qū)域在窗口右側(cè),則第3位為1; 若區(qū)域在窗口左側(cè),則第4位為1。設(shè)線段的兩個端點p1(x1,y1),p2(x2,y2),求出p1,p2所處區(qū)域的代碼c1和c2
2.判別:⑴c1=c2=0,完全可見,保留,AB⑵c1&c2!=0完全不可見,舍棄CD
⑶不滿足⑴⑵可分為三種情況①一個端點在內(nèi)另一個端點在外EF②兩個端點都在外,且直線段在外JK③兩個端點都在外,但直線中部跨越窗口HI
3.求交。求線段與窗口邊界及其延長線的交點4.對剩下的子線段重復(fù)以上各步,從而完成對直線段的裁剪將 ,代入上式,求出左右邊界交點坐標將 ,代入上式,求出上下邊界交點坐標Cohen-Sutherland算法算法的程序?qū)崿F(xiàn)如下函數(shù)Cohen_Sutherland用來實現(xiàn)算法函數(shù)makecode用來編碼,利用數(shù)值位運算doublexl,xr,yt,yb;(事先給出窗口的位置,四個數(shù)值是已知的)Cohen-Sutherland算法端點P0編碼端點P2編碼while(P0P2不完全可見){ if(P0P2完全不可見)return;
求交點P; if(P0在裁剪區(qū)域外) P0=P; else P2=P;}繪制P0P2;intmakecode(doublex,doubley){ intc=0;
if(x<xl)c=1; elseif(x>xr)c=2; if(y<yb)c=c+4; elseif(y>yt)c=c+8; returnc;}voidCohen_Sutherland(doublex0,doubley0,doublex2,doubley2){ intc,c0,c1; doublex,y;
c0=makecode(x0,y0);c1=makecode(x2,y2); while(c0!=0||c1!=0) { if(c0&c1!=0)return;
c=c0;if(c==0)c=c1; if(c&1==1){y=y0+(y2-y0)*(xl-x0)/(x2-x0);x=xl;} elseif(c&2==2){y=y0+(y2-y0)*(xr-x0)/(x2-x0);x=xr;} elseif(c&4==4){x=x0+(x2-x0)*(yb-y0)/(y2-y0);y=yb;} elseif(c&8==8){x=x0+(x2-x0)*(yt-y0)/(y2-y0);y=yt;} if(c==c0){x0=x;y0=y;c0=makecode(x,y);} else{x2=x;y2=y;c1=makecode(x,y);} } showline(x0,y0,x2,y2);//顯示可見線段}2、中點分割裁剪算法基本思想:與前一種Cohen-Sutherland算法一樣首先對線段端點進行編碼,并把線段與窗口的關(guān)系分為三種情況:1)完全可見,繪制線段2)完全不可見,線段不繪制,舍棄3)求中點pm,分割成p0pm,pmp1,再分別進行判斷,直到會不會無限循環(huán)、不斷二分?中點分割算法可分成兩個過程平行進行,從p0點出發(fā)找出離點p0最近的可見點,從p1點出發(fā)找出離點p1最近的可見點。這兩個最近可見點的連線就是原直線段的可見部分。從P0出發(fā)找最近可見點的方法梁友棟-Barsky算法設(shè)要裁剪的直線段為。P0P1和窗口邊界交于A、B、C和D四個點?;舅枷耄簭腁、B(始邊交點)和P0三點中找出最靠近P1的點,該點是P0。從C、D(終邊交點)和P1點中找出最靠近P0的點,該點是點C。那么P0C就是線段上的可見部分。ABP0P1CD在具體計算時,可以把寫成參數(shù)方程:把窗口邊界的四條邊分成兩類,一類稱為始邊,另一類稱為終邊。當時,稱為始邊,為終邊。當時,稱為始邊,為終邊。ABP0P1CD求出P0P1和兩條始邊的交點的參數(shù)和,令:求出P0P1和兩條終邊的交點的參數(shù)和,令:ABP0P1CDABP0P1CDABP0P1CDABP0P1CD當t1>t0時,參數(shù)方程中參數(shù)的線段就是的可見部分。當t1<t0
時,整個直線段為不可見ABP0P1CDABP0P1CD求出P0P1和兩條始邊的交點的參數(shù)和,令:求出P0P1和兩條終邊的交點的參數(shù)和,令:交點的參數(shù)為:ABP0P1CDtl是P0P1與左邊界的交點參數(shù)tr是P0P1與右邊界的交點參數(shù)tb是P0P1與下邊界的交點參數(shù)tt是P0P1與上邊界的交點參數(shù)令:則ABP0P1CD當時,則p0p1是完全不可見的(如圖3.30中的直線段AB,使)。當時,如CD,當時,是和始邊的交點的參數(shù)。當時,是和終邊的交點的參數(shù)。
boolcansee(doubleq,doubled,double&t0,double&t1)//
函數(shù)cansee用于判斷直線段是否可見。{ doubler; if(q<0){//計算與始邊的交點參數(shù)
r=d/q; if(r>t1){returnfalse;} elseif(r>t0)t0=r;// }elseif(q>0){//計算與終邊的交點參數(shù)
r=d/q; if(r<t0){returnfalse;} elseif(r<t1)t1=r;// }elseif(d<0){returnfalse;} returntrue;}
函數(shù)L_Barsky實現(xiàn)算法voidL_Barsky(doublex0,doubley0,doublex1,doubley1)//doublexl,xr,yt,yb;(窗口位置){ doublet0,t1,deltax,deltay; t0=0.0;t1=1.0; deltax=x1-x0; if(!cansee(-deltax,x0-xl,t0,t1))return; if(!cansee(deltax,xr-x0,t0,t1))return; deltay=y1-y0; if(!cansee(-deltay,y0-yb,t0,t1))return; if(!cansee(deltay,yt-y0,t0,t1))return; x1=x0+t1*deltax;y1=y0+t1*deltay; x0=x0+t0*deltax;y0=y0+t0*deltay; showline(x0,y0,x1,y1);//顯示可見線段}二、其它圖形的裁剪1、字符的裁剪2、多邊形的裁剪3、圓弧的裁剪4、裁剪區(qū)域為凸多邊形區(qū)域的直線段裁剪
字符裁剪如果把字符的每一筆看成是由一條直線段或幾條直線段組成的,那么就可以用直線段裁剪的方法去處理每一筆劃;或者把包含一個字符的最小矩形在窗口外的字符認為不可見。字符串裁剪如果包含字符串的最小矩形在窗口外,則認為整個字符串為不可見。1、字符裁剪字符裁剪串精度:將包圍字串的外接矩形對窗口作裁剪字符精度:將包圍字的外接矩形對窗口作裁剪筆畫\象素精度:將筆劃分解成直線段對窗口作裁剪待裁剪字符串 串精度裁剪 字符精度裁剪象素精度裁剪STRINGSTRING2STRING2RINGSTRING2STRINGSTRING22、多邊形的裁剪多邊形裁剪后,一部分窗口的邊界有可能成為裁剪后多邊形的邊界,而一個凹多邊形裁剪后可能成為幾個多邊形
對多邊形的裁剪可以采用Sutherland-Hodgman算法,只要對多邊形用窗口的四條邊裁剪四次就可得到裁剪后的多邊形多邊形裁剪多邊形裁剪基本思想:一次用窗口的一條邊裁剪多邊形。窗口的一條邊以及延長線構(gòu)成的裁剪線把平面分成兩個部分:可見一側(cè);不可見一側(cè)多邊形的各條邊的兩端點S、P。它們與裁剪線的位置關(guān)系只有四種對于情況(1)僅輸出頂點P;情況(2)輸出0個頂點;情況(3)輸出線段SP與裁剪線的交點I;情況(4)輸出線段SP與裁剪線的交點I和終點PSP與裁剪線同側(cè)不同側(cè)同在可見一側(cè)(1)同在不可見一側(cè)(2)S可見,P不可見(3)S不可見,P可見(4)開始輸入第一個頂點→S第一個頂點→F輸入下一個頂點P處理線段SPP→SF→P處理線段SP結(jié)束頂點輸入完畢YN(1)主框圖
該算法僅用一條裁剪邊對多邊形進行裁剪,得到一個頂點序列,作為下一條裁剪邊處理過程的輸入。SP與裁剪線相交求SP與裁剪線的交點I輸出IP位于可見一側(cè)輸出頂點PYNYN(2)處理線段SP過程子框圖可見一側(cè)可見一側(cè)可見一側(cè)可見一側(cè)SpSSSppp(1)(2)(3)(4)開始輸入第一個頂點→S第一個頂點→F輸入下一個頂點P處理線段SPP→SF→P處理線段SP結(jié)束頂點輸入完畢YNSP與裁剪線相交求SP與裁剪線的交點I輸出IP位于可見一側(cè)輸出頂點PYNYN(1)主框圖(2)處理線段SP過程子框圖3、圓弧裁剪可把圓弧和窗口四條邊的交點求出來,再按交點對圓心幅角的大小排序,排序后,相鄰的兩個交點決定了圓弧上一段可見或不可見的弧。3、圓弧裁剪(1)計算圓弧與裁剪邊的交點
相切交點不計在內(nèi)
在延長線上的交點不計在內(nèi)(2)交點與圓心連線夾角按逆時針排序(3)可見圓弧與不可見圓弧交替出現(xiàn)
第一段圓弧的可見性根據(jù)(x0+R,y)是否在裁剪區(qū)域內(nèi)判斷歸納為:(1)圓弧端點在一條裁剪邊上,不可見;(2)圓弧端點在相鄰裁剪邊或?qū)ΨQ裁剪邊上,可見。4、裁剪區(qū)域為凸多邊形區(qū)域的直線段裁剪1.計算所要裁剪的直線段所在直線與凸多邊形區(qū)域的邊界直線段的交點。2.當交點的個數(shù)為0或1時,該直線段處于凸多邊形區(qū)域外
3.當交點的個數(shù)為2時,通過判斷這兩個交點與被裁剪的直線段的端點在直線段所處的直線上的關(guān)系來進行裁剪。1)
如果直線段的兩個端點和兩個交點剛好全部重合,則顯而易見該直線段完全可見。
2)
如果直線段的兩個端點和兩個交點中有一個重合,則將重合的點視為一點,則將重合點與另外的一個端點、一個交點按在直線上的順序排列。根據(jù)排列的順序有如下三種情況:①重合點和交點不相鄰,則直線段完全可見;②如果重合點與交點相鄰,且該交點與另一個端點相鄰,則直線段部分可見,且可見部分為重合點與另一個交點確定的直線段,它的可見部分為直線段;③如果重合點與交點相鄰,且該交點與另一個端點不相鄰,則直線段完全不可見。KL①TV②PTVIJ③3)如果直線段的兩個端點和兩個交點都不重合。將這四個點按在直線上的順序排列,根據(jù)排列的順序有如下四種情況:①如果兩個端點和兩個交點分別相鄰,則直線段完全不可見;②如果兩個端點在兩個交點之間,則直線段完全可見;
③如果兩個交點在兩個端點之間,則直線段部分可見,且可見部分為兩個交點決定的直線段,它的可見部分為直線段;④如果交點和端點的排列順序是交錯的,則直線段部分可見,且可見部分為中間的一個交點和一個端點決定的直線段,它的可見部分為直線段。MN①OQ②AB③PAB1PAB2RS④PRS1裁剪區(qū)域為任意凸多邊形區(qū)域時的直線段的裁剪算法1.計算所要裁剪的直線段所在直線與凸多邊形區(qū)域的邊界直線段的交點。MN⑦OQ⑧AB⑨PAB1PAB2RS⑩PRS1KL④TV⑤PTVIJ⑥CD①EF②GH③三、三維圖形的裁剪Cohen-Sutherland算法推廣至三維時,用于判斷顯然不可見的線段的編碼應(yīng)為六位,這六位的安排是:第—位為1——端點在裁剪體左側(cè)第二位為1——端點在裁剪體右側(cè)第三位為1——端點在裁剪體下側(cè)第四位為1——端點在裁剪體上側(cè)第五位為1——端點在裁剪體前面第六位為1——端點在裁剪體后面當端點在裁剪體內(nèi)時六位全置零。
對于透視裁剪體來說,此時需要采用判別函數(shù)來確定。其中,為投影中心,為裁剪體后面在Z軸上的截距,,,,
將要確定端點編碼的點的x和y坐標代入,如果點在裁剪體右側(cè)面右方
點在裁剪體右側(cè)面上
點在裁剪體右
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度車輛質(zhì)押貸款合同模板5篇
- 二零二五版白酒市場調(diào)研與分析服務(wù)合同2篇
- 二零二五版便利店區(qū)域代理合作合同范本2篇
- 二零二五年度花卉市場花卉供貨與品牌孵化服務(wù)合同3篇
- 二零二五年環(huán)境監(jiān)測地形圖測繪與污染防控合同3篇
- 二零二五版電影影視基地建設(shè)贊助合同3篇
- 2025版金融機構(gòu)出納人員現(xiàn)金擔保責任合同范本3篇
- 二零二五年建材城商鋪租賃合同環(huán)保及安全責任承諾書3篇
- 二零二五年度民間借貸合同管轄權(quán)變更協(xié)議3篇
- 二零二五年度房地產(chǎn)買賣居間合同模板(含稅費繳納)下載3篇
- 《木蘭詩》第1第2課時示范公開課教學(xué)PPT課件【統(tǒng)編人教版七年級語文下冊】
- EGD殺生劑劑化學(xué)品安全技術(shù)說明(MSDS)zj
- GB/T 12229-2005通用閥門碳素鋼鑄件技術(shù)條件
- 超分子化學(xué)-第三章 陰離子的絡(luò)合主體
- 控制變量法教學(xué)課件
- 血壓計保養(yǎng)記錄表
- 食品的售后服務(wù)承諾書范本范文(通用3篇)
- 新外研版九年級上冊(初三)英語全冊教學(xué)課件PPT
- 初中中考英語總復(fù)習(xí)《代詞動詞連詞數(shù)詞》思維導(dǎo)圖
- 植物和五行關(guān)系解說
- 因式分解法提公因式法公式法
評論
0/150
提交評論