第5章觀察變換和裁剪課件_第1頁
第5章觀察變換和裁剪課件_第2頁
第5章觀察變換和裁剪課件_第3頁
第5章觀察變換和裁剪課件_第4頁
第5章觀察變換和裁剪課件_第5頁
已閱讀5頁,還剩180頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章觀察變換和裁剪管道由于地形高差相差大,或支線接人埋設(shè)較深的主干線時出現(xiàn)較大的跌落水頭,需要設(shè)置跌水井,以克服水流跌落時產(chǎn)生的巨大沖擊力。采用豎槽式混凝土跌水井(蓋板式)D=200-400mm(直線外跌)。本設(shè)計中,由于地形較平坦,無較大跌落水頭,無需設(shè)置跌水井。第5章觀察變換和裁剪第5章觀察變換和裁剪管道由于地形高差相差大,或支線接人埋設(shè)較深的主干線時出現(xiàn)較大的跌落水頭,需要設(shè)置跌水井,以克服水流跌落時產(chǎn)生的巨大沖擊力。采用豎槽式混凝土跌水井(蓋板式)D=200-400mm(直線外跌)。本設(shè)計中,由于地形較平坦,無較大跌落水頭,無需設(shè)置跌水井。25.12維觀察用圖形生成算法,結(jié)合幾何變換方法在2維空間構(gòu)造圖形;然后通過圖形物理設(shè)備(顯示屏、繪圖儀等)輸出圖形的過程,稱之為觀察。在有限幅面的屏幕坐標系中顯示一張大幅面圖形,會模糊不清達不到觀察的目的;反之,假如只對整幅圖形的某些局部感興趣,就只需輸出該圖的局部內(nèi)容供觀察。3明確在世界坐標系中的哪部分區(qū)域需要被觀察輸出,這部分內(nèi)容又將在顯示屏坐標系中的哪個范圍顯示,這是觀察變換問題。坐標系是建立圖形與數(shù)之間對應(yīng)聯(lián)系的參考系。5.1.1坐標系計算機圖形學(xué)中對象的定義及其輸入輸出都在一定的坐標系下進行。同一對象在觀察過程的不同階段需用不同的坐標系描述,以提高處理效率,方便用戶理解。4又稱笛卡爾坐標系,是最常用的坐標系。在3維空間中,直角坐標系分左手坐標系和右手坐標系。1.直角坐標系仿射坐標系:坐標軸之間不垂直圓柱坐標系球坐標系極坐標系5WC是與物理設(shè)備無關(guān),描述自然界對象時所用的右手直角坐標系。其取值范圍是整個實數(shù)域。2.

世界坐標系(WorldCoordinateSystem)

用戶坐標系(UserCoordinate

System)若由用戶自行確定世界坐標系的取值范圍描述對象時,世界坐標系又稱為用戶坐標系。用戶坐標系的取值范圍是整個實數(shù)域的某個子域,也可以是整個實數(shù)域。6VC是與物理設(shè)備無關(guān)的,用于設(shè)置觀察窗口觀察和描述用戶感興趣的區(qū)域內(nèi)部分對象,其取值范圍由用戶確定。觀察坐標系采用左手直角坐標系,可以在用戶坐標系中的任何位置、任何方向定義。其中有一坐標軸與觀察方向重合同向并與觀察平面垂直。

(如圖4-6表示世界坐標系與觀察坐標系之間的關(guān)系。)

3.觀察坐標系(ViewingCoordinateSystem)7設(shè)備坐標系(DC)是與具體物理設(shè)備相關(guān),用于指定輸出圖形的窗口或視區(qū)。設(shè)備坐標系常采用左手直角坐標系;其取值范圍受設(shè)備的輸入輸出精度和有效幅面的限制,是某個整數(shù)域。4.設(shè)備坐標系(DeviceCoordinateSystem)造型坐標系MC:ModelingCoordinateSystem右手系,直角坐標系。對于定義的每個形體或圖素都有各自的坐標原點和長度單位,這樣可以方便形體和圖素的定義。局部坐標系(localcoordinate)85.規(guī)范化設(shè)備坐標系(NormalizedDeviceCoordinateSystem)規(guī)范化設(shè)備坐標系(NDC)是與具體的物理設(shè)備無關(guān)的一種坐標系,用于定義視區(qū),描述來自世界坐標系中窗口內(nèi)對象的圖形,取值范圍約定為0~1的正方形域。由NDC表示的圖形在任何的DC中都能處于相同的相對位置。正是NDC的描述,提高了相關(guān)程序的可移植性。9是指將世界坐標系定義的2維對象最終在設(shè)備坐標系中顯示的整個過程。

5.1.22維觀察控制流程窗口在世界坐標系中由用戶指定的一個區(qū)域;用來指定要顯示的圖形。視區(qū)

在設(shè)備坐標系(屏幕)上指定的區(qū)域;用來指定窗口內(nèi)的圖形在屏幕上顯示的大小及位置。10矩形是最常用的窗口和視區(qū)。觀察變換:將定義在世界坐標系中窗口區(qū)域內(nèi)的圖形變換到設(shè)備坐標系中,并在指定視區(qū)內(nèi)顯示的過程。

在2維空間中的觀察變換又稱為窗口視區(qū)變換。112D觀察控制流程:WC:定義2D對象WC到VC變換VC:窗口裁剪VCNDC窗口視區(qū)變換NDC到DC變換DC:

2D圖形顯示125.1.3WC到VC的變換是指將對象描述從世界坐標系變換到觀察坐標系的過程。xeyeoe(x0,y0)θ134.2.3WC到VC的變換分兩步:1)平移觀察坐標系的坐標原點,與世界坐標系的原點重合;2)將xe、ye軸分別旋轉(zhuǎn)(-θ)角與xw、yw軸重合。100cosθ-sinθ0

TT=

100TR=sinθcosθ0-x0-y01001WC到VC的變換總矩陣為T=TT·TR14窗口位置為(xwmin,ywmin)和(xwmax,ywmax);視區(qū)位置為(xvmin,yvmin)、(xvmax,yvmax)。窗口到視區(qū)的映射原則:對同一對象,在窗口與視區(qū)中應(yīng)具有相同的相對位置,兩者不變形。窗口中的物點P(xw,yw)與視區(qū)中的像點P′(xv,yv)之間滿足:5.1.4窗口到視區(qū)變換P點到窗口左邊界距離/窗口寬度=P′點到視區(qū)左邊界距離/視區(qū)寬度P點到窗口下邊界距離/窗口高度=P′點到視區(qū)下邊界距離/視區(qū)高度15xyoP(xw,yw)(xwmax,ywmax)(xwmin,ywmin)VC:窗口P’(xv,yv)(xvmax,yvmax)(xvmin,yvmin)NDC:視區(qū)16得視區(qū)像點P′的坐標為

xv=xvmin+sx(xw-xwmin)yv=yvmin+sy(yw-ywmin)(4-10)其中

sx=(xvmax-xvmin)/(xwmax-xwmin)sy=(yvmax-yvmin)/(ywmax-ywmin)(4-11)sx、sy分別為x和y方向上的比例因子。17

改變窗口、視區(qū)大小,在視區(qū)內(nèi)得到大小變化、位置不同的像.改變視區(qū)大小可改變輸出對象的大小和位置;如果視區(qū)大小不變,窗口擴大,像縮小,窗口縮小、像放大;若視區(qū)為全屏,窗口內(nèi)容將滿屏顯示。改變視區(qū)位置可獲得不同顯示位置的輸出對象;不在窗口區(qū)域內(nèi)的內(nèi)容不會在視區(qū)內(nèi)出現(xiàn)。如果sx=sy,窗口的寬/高=視區(qū)的寬/高,物與像形狀相似,像不產(chǎn)生畸變;否則產(chǎn)生畸變。

如果xvmin=yvmin=0,xvmax=yvmax=1,則窗口到視區(qū)的變換將獨立于輸出設(shè)備。185.1.5規(guī)范化設(shè)備坐標系

到設(shè)備坐標系的變換規(guī)范化坐標系(0,0)~(1,1),映射到設(shè)備坐標系(0,0)~(n

,m)。NDCDC(xNDC,yNDC)(xDC,yDC)(Dx,Dy)(dx,dy)19xDC=n?xndcyDC=m?yndc若n:m不等于1,DC中輸出的圖形將產(chǎn)生變形。如何解決?20定義窗口voidgluOrtho2D(GLdoubleleft,

GLdoubleright,

GLdoublebottom,

Ldoubletop

);left,right

Thecoordinatesfortheleftandrightverticalclippingplanes.bottom,top

Thecoordinatesforthebottomandtophorizontalclippingplanes.定義視區(qū)glViewport(GLintx,GLinty,GLsizeiwidth,GLsizeiheight);

這個函數(shù)定義一個視口。函數(shù)參數(shù)(x,y)是視口在屏幕窗口坐標系中的左下角點坐標,參數(shù)width和height分別是視口的寬度和高度。缺省時,參數(shù)值即(0,0,winWidth,winHeight)指的是屏幕窗口的實際尺寸大小。所有這些值都是以象素為單位,全為整型數(shù)21SetupViewport(cx,cy);m_width=cx;m_height=cy;glMatrixMode(GL_PROJECTION);glLoadIdentity();if(m_width<=m_height){glOrtho2D(xMin,xMax,yMin*(GLdouble)((GLdouble)m_height/(GLdouble)m_width), yMax*(GLdouble)((GLdouble)m_height/(GLdouble)m_width));}Else{glOrtho2D(xMin*(GLdouble)((GLdouble)m_width/(GLdouble)m_height),xMax*(GLdouble)((GLdouble)m_width/(GLdouble)m_height),yMin,yMax,);}glMatrixMode(GL_MODELVIEW);glLoadIdentity();225.2二維圖形裁剪裁剪:按指定大小和位置開窗口,確定圖形在窗口內(nèi)的予以顯示,在窗口外的不予顯示的操作。裁剪實質(zhì):

確定圖形中哪些圖元在窗口內(nèi)。裁剪操作基本任務(wù):圖元在窗口內(nèi)外的判斷;圖元與窗口邊界相交時的求交計算。裁剪處理的速度是衡量裁剪算法性能的重要指標。235.2.1點的裁剪設(shè)矩形窗口左下角點坐標為(xL,yB),右上角點坐標為(xR,yT),圖形中的任意一點(x,y)若滿足條件:

xL≤x≤xR

yB≤y≤yT(4-18)則,該點在窗內(nèi)應(yīng)為可見被顯示;否則不可見被裁剪掉。245.2.2直線段裁剪

1.直線段與窗口的相對位置

與凸多邊形窗口相交的任何直線段最多只有一段處于其邊界內(nèi)。線段與窗口的三種相對位置關(guān)系:完全不可見、完全可見和部分可見。25直線段兩端點與窗口的各種位置關(guān)系1)兩端點均在窗口內(nèi)(A);直接判斷完全可見。2)兩端點均在窗口邊界線外同側(cè)(B和C);直接判斷出完全不可見。3)一端點在窗口內(nèi),另一個在窗口外(D);計算交點S,S內(nèi)側(cè)線段為可見,另一側(cè)線段不顯示。ABCDEFA264)兩端點均在窗口外,但不在窗口邊界線外同側(cè)(E、F);與窗口邊界求交,分兩種情形:BCDEFAS1S2S①兩交點均處于窗口有效邊界上(E),兩交點間的線段S1S2為可見,其余兩側(cè)的線段舍棄;②兩交點均在窗口有效邊界外(F),完全不可見,舍棄。27直線段裁剪算法

Cohen-Sutherland算法(編碼裁剪法)

用四條窗口邊界線把整個平面分成九個區(qū)域,每個區(qū)域用一個四位二進制代碼表示。每條線段按其端點所在區(qū)域的代碼標識它相對于窗口的位置屬于哪種類型,確定對該線段是否裁剪。28000010001010100100010101010001100010四位代碼CTCBCRCL含義如下:

CL=1(端點在XL左);=0(端點在XL右)

CR=1(端點在XR右);=0(端點在XR左)

CB=1(端點在YB下);=0(端點在YB上)

CT=1(端點在YT上);=0(端點在YT下)XLXRYTYB29BCDEFAS1S2S000010001010100100010101010001100010此圖六條線段的端點代碼特征與可見性的關(guān)系,如下表所示。30C1、C2分別為線段端點代碼,code為C1與C2的邏輯乘。

線段C1C2code特征結(jié)果說明A000000000000C1=C2=code=0000完全在窗內(nèi),全接受B100010001000完全在窗外同側(cè),C100100010001code≠0000全不可見,舍棄D000100000000C1、C2之一:0000有一交點,部分可見E/F001001000000C1與C2均≠0000線段與窗口邊界有且code=0000兩交點,可見性不定311.求出線段兩端點P1和P2的編碼C1和C2;2.若C1和C2的按位“與”不等于0,P1和P2必定在某條邊的外側(cè),P1P2不可見。結(jié)束。3.若C1和C2的按位“或”等于0,P1P2全部可見。結(jié)束。4.否則必然有一個端點在矩形外部,令該點為P1。5.P1在哪條邊界線外部,就求出該邊界與P1P2的交點P,舍掉P1P部分,把交點P作為剩余線段的P1點。6.重復(fù)上述過程1~5,直到結(jié)束。編碼裁剪算法思路:裁剪一條直線段的Cohen-Sutherland算法如圖4-14.32編碼裁剪算法:#defineLEFT1 /*0001*/#defineRIGHT2 /*0010*/#defineBOTTOM4 /*0100*/#defineTOP8 /*1000*/encode(x,y,code)floatx,y;int*code;{intc;c=0;if(x<XL)c=c|LEFT;33elseif(x>XR)c=c|RIGHT;if(y<YB)c=c|BOTTOM;elseif(y>YT)c=c|TOP;*code=c;return;}C_S_LineCLip(x1,y1,x2,y2,XL,XR,YB,YT)floatx1,y1,x2,y2,XL,XR,YB,YT;{intcode1,code2,code;encode(x1,y1,&code1);encode(x2,y2,&code2);34while(code1<>0||code2<>0){ if(code1&code2<>0)return; code=code1 if(code1==0)code=code2 if(LEFT&code<>0) { x=XL; y=y1+(y2-y1)*(XL-x1)/(x2-x1); } elseif(RIGHT&code<>0)35{

x=XR; y=y1+(y2-y1)*(XR-x1)/(x2-x1);}elseif(BOTTOM&code<>0){ y=YB; x=x1+(x2-x1)*(YB-y1)/(y2-y1)}elseif(TOP&code<>0){y=YT; x=x1+(x2-x1)*(YT-y1)/(y2-y1)}36if(code==code1){x1=x,y1=y;encode(x,y,code1);}else{x2=x,y2=y,encode(x,y,code2);}}displayline(x1,y1,x2,y2);return;}3738基本思想是:運用C-S算法中直線段端點編碼和線段檢測方法,首先識別直接接受的完全可見線段和直接舍棄的完全不可見線段;對于不能立即識別可見性的線段,將線段中分為兩段,并對該兩段再分別重復(fù)上述測試……,直到原來線段的子段完全在窗內(nèi)被直接接受,或完全在窗口外直接舍棄。中點分割裁剪算法39P2P1A1A2AmPmS1S240大意:首先對線段端點進行編碼,并把線段與窗口的關(guān)系分為三種情況:全在、完全不在、線段和窗口有交。對前兩種情況,與C-S算法一樣處理。對于情況三,用中點分割方法將線段中分為兩段,看是否歸到前兩種情況?

若不是,求出線段與窗口的交點:從P1點出發(fā)找出距P1最近可見點S1;從P2點出發(fā)找出距P2最近可見點S2,兩個可見點之間的連線即為線段P1P2的可見部分。中點分割裁剪算法

41從p1出發(fā)找最近可見點的中點分割法:先求出p1p2的中點pm,若p1pm不是顯然不可見,并且p1p2在窗口中有可見部分,則距p1最近的可見點一定落在p1pm上,所以用p1pm代替p1p2;否則取pmp2代替p1p2。再對新的p1p2求中點pm。重復(fù)上述過程,直到pmp2長度小于給定的控制常數(shù)為止,此時pm收斂于交點。P2P1PmS1S242求端點P1、P2編碼code1、code2code1^code2=0?code1=code2=0?code1=0?Pm=(P1+P2)/2|PmP2|<e?P1Pm顯然不可見?P2=PmP1=PmP1P2全可見P1可見,P=P1P=PmP1P2全不可見退出NYYYYNNNNY43該算法的主要計算過程只用到加法和除2運算,所以特別適合硬件實現(xiàn),同時也適合于并行計算。44Cyrus-Beck算法是典型的一種??捎梅蔷匦蔚耐苟噙呅未翱诓眉?維線段,用凸多面體裁剪3維線段。Cyrus-Beck算法是基于向量點積原理判斷線段端點的區(qū)域、計算交點的。Cyrus-Beck參數(shù)裁剪算法NiPEPEPEPLPLfiP1(t=0)P2(t=1)窗口一邊界與線段P1P2的相交情況:邊界Ei,內(nèi)法矢Ni,其上任意點fi。

線段P1P2的參數(shù)方程:

P(t)=P1+(P2-P1)tNi(P(t)-fi)

有三種可能:>0,P(t)在窗口內(nèi);=0,P(t)在窗口邊界/延長線上;<0,P(t)在窗口外。45直線P1P2,兩端點座標為P1(-1,1),P2(9,3),對一個矩形區(qū)域內(nèi)的裁剪。48P1P2方程:參數(shù)方程:內(nèi)法矢:i,-i,j,-j(左右下上)左邊界,取f=(0,0),nL=i46t=1/10,右邊界:f=(8,4)nR=-it=9/10下邊界:f=(0,0),nB=jt=-1/2上邊界:f=(8,4),nT=-jt=3/2474849若交換P3、P4的位置,將導(dǎo)出顯示窗口完全位于線段左側(cè)的結(jié)論,因此,在作出線段不可見的結(jié)論時,被裁剪線段方向是重要的。5051Cyrus-Beck參數(shù)化裁剪算法

Cyrus-Beck算法是典型的一種??捎梅蔷匦蔚耐苟噙呅未翱诓眉?維線段,用凸多面體裁剪3維線段。Cyrus-Beck算法是基于向量點積原理判斷線段端點的區(qū)域、計算交點的。NiPEPEPEPLPLfiP1(t=0)P2(t=1)窗口一邊界與線段P1P2的相交情況:邊界Ei,內(nèi)法矢Ni,其上任意點fi。

線段P1P2的參數(shù)方程:

P(t)=P1+(P2-P1)t52fi到P1P2的向量為(P(t)-fi),與邊界Ei的內(nèi)法矢Ni的點積Ni(P(t)-fi)

有三種可能:>0,P(t)在窗口內(nèi);=0,P(t)在窗口邊界/延長線上;<0,P(t)在窗口外。Ni(P1-fi)t=-Ni(P2-P1)式中分母不為0:1)Ni不可能為0向量;2)若P1、P2重合,可簡單處理;3)若Ni(P2-P1),P1P2//Ei,無交點。NiPEPEPEPLPLfiP2(t=1)P1(t=0)P(t)=P1+(P2-P1)t53PENiPEPEPLPLPEiP2(t=1)P1(t=0)線段與邊界線Ei

的交點滿足:

0≤

t≤

1但其中有有效交點和無效交點。有效交點的確定:①進入交點PE(

Ni(P2-P1)>0)離開交點PL(

Ni(P2-P1)<0)②最后交點對(PE,PL)

交點參數(shù)tE、tL滿足:tE=max{0,max{ti:Ni·(P2-P1)<0}}tL=min{1,min{ti:Ni

·(P2-P1)>0}}靠近直線的終點靠近直線的起點54交點對(PE,PL):PE=P(tE),PL=P(tL)③合理性:

tE≤

tL如果tE>tL,則線段完全落在裁剪窗口之外。NiPEPEPEPLPLPEiP2(t=1)P1(t=0)5556

梁友棟和Barskey提出的參數(shù)化裁剪算法。首先按參數(shù)化形式寫出裁剪矩形的裁剪條件:

這四個不等式可以表示為形式:其中,參數(shù)pk,qk定義為:

任何平行于裁剪邊界之一的直線pk=0,k=1,2,3,4對應(yīng)于左、右、下、上裁剪邊界;如果qk<0,則線段完全在邊界外,舍棄。如果qk≥0,則該線段在窗口內(nèi),與裁剪邊界平行。梁友棟-Barskey算法

+t+tt57當qk<0,P1位于第k條邊的外側(cè),不可見部分;當qk>0,P1位于第k條邊的內(nèi)側(cè),可見部分當qk≠0,線段與邊界的交點的t值:t=qk/pk.

q1=x1-xL<0》》xL>x1q2=xR-x1<0》》x1>xRq3=y(tǒng)1-yB<0》》yB>y1q4=y(tǒng)T-y1<0》》y1>yT58對于每條直線,可以計算出定義裁剪矩形內(nèi)線段部分的參數(shù)te、tl

。

te的值由線段從外到內(nèi)遇到的矩形邊界所決定(p<0)。對這些邊界計算tk=qk/pk。te=max{0,tk}。

tl的值由線段從內(nèi)到外遇到的矩形邊界所決定(p>0)。對這些邊界計算tk=qk/pk。tl=min{0,tk}。取te

≤tl時的線段,否則完全落在裁剪窗口之外。pk<0,線段從外到內(nèi)Pk>0,線段從內(nèi)到外p1=x1-x2<0》》x2>xL>x1p2=x2-x1<0》》x1>xR>x2p3=y(tǒng)1-y2<0》》y2>yB>y1p4=y(tǒng)2-y1<0》》y1>yT>y2593.多邊形裁剪算法

多邊形裁剪:等價于直線段逐段裁剪的組合?問題:1)邊界不再封閉,需要用窗口邊界的恰當部分來封閉它,如何確定其邊界?602)一個凹多邊形可能被裁剪成幾個小多邊形,如何確定這些小多邊形的邊界?61Sutherland-Hodgman算法

(逐邊裁剪算法)算法基本思想:逐邊裁剪、兩次分解、流水線作業(yè).首先將多邊形對于矩形窗口的裁剪分解為多邊形關(guān)于窗口四邊所在直線的裁剪,其次,將多邊形對一條直線的裁剪分解為各邊對直線的裁剪。

亦稱逐邊裁剪算法.62考慮窗口的一條邊以及延長線構(gòu)成的裁剪線,把平面分成:含窗口可見一側(cè);不可見一側(cè)。依序考慮多邊形的各條邊的兩端點S、P。它們與裁剪邊界有四種位置關(guān)系:(1)S,P均在可見側(cè)(2)S可見,P不可見(3)S,P均在不可見側(cè)(4)S不可見,P可見。63每條線段端點S、P與裁剪線比較后,可輸出0至2個頂點:情況(1)僅輸出終點P;

情況(2)輸出線段SP與裁剪線的交點I;情況(3)輸出0個頂點;情況(4)輸出線段SP與裁剪線的交點I和終點P。上述算法僅用一條裁剪邊對多邊形進行裁剪,得到一個頂點序列,作為下一條裁剪邊處理過程的輸入。646566裁剪結(jié)果的頂點構(gòu)成:裁剪邊內(nèi)側(cè)的原頂點;多 邊形的邊與裁剪邊的交點。順序連接。幾點說明:裁剪算法采用流水線方式,適合硬件實現(xiàn)??赏茝V到任意凸多邊形裁剪窗口.67裁剪窗口可以為任意多邊形,規(guī)定

主多邊形:被裁剪多邊形,記為A

裁剪多邊形:裁剪窗口,記為B

多邊形頂點的排列順序:使多邊形區(qū)域位于有向邊的左側(cè)。外環(huán)(逆時針)、內(nèi)環(huán)(順時針)

內(nèi)裁剪結(jié)果:A∩B

外裁剪結(jié)果:A-BWeiler-Atherton算法

(雙邊裁剪算法)68裁剪結(jié)果區(qū)域的邊界由A的部分邊界和B的部分邊界兩部分構(gòu)成,并且在交點處邊界發(fā)生交替,即由A的邊界轉(zhuǎn)至B的邊界,或由B的邊界轉(zhuǎn)至A的邊界。69兩類交點:

入點---沿主多邊形邊界由此進入裁剪多邊形內(nèi)

出點---沿主多邊形邊界由此離開裁剪多邊形區(qū)域特點:入點和出點成對出現(xiàn)。Weiler_Athenton裁剪算法(內(nèi)裁剪)步驟:1、建立主多邊形和裁剪多邊形的頂點環(huán)表;2、求主多邊形和裁剪多邊形的交點,建立入點表和出點表;并將這些交點按順序插入兩多邊形的頂點環(huán)表。在兩多邊形頂點環(huán)表中的相同交點間建立雙向指針;

3、裁剪過程:701)建立裁剪結(jié)果多邊形的頂點表;

2)依次選取入點表中的一個入點,檢測其是否被處理過?是,取下一個入點,直至入點表中的入點全被處理過,結(jié)束;

3)沿主多邊形頂點環(huán)表正向搜索,將搜索到的主多邊形頂點記入裁剪結(jié)果多邊形的頂點表中,直至下一個交點(出點);4)按該交點的雙向指針,搜索路徑由主多邊形轉(zhuǎn)入裁剪多邊形;5)沿裁剪多邊形頂點環(huán)表正向搜索,將搜索到的裁剪多邊形頂點記入裁剪結(jié)果多邊形頂點表中,直至下一個交點(入點);檢測該入點是否與開始入點相同?相同,轉(zhuǎn)2);6)按該交點的雙向指針,搜索路徑又由裁剪多邊形回到主多邊形;轉(zhuǎn)3)。711、建立主多邊形和裁剪多邊形的頂點環(huán)表;S1S2S3S4S5S6S7S1C1C2C3C4C1S1S2S3S4S5S6S7C1C2C3C4I1I2I3I4I5I6I7I8主裁72S5S1S2S3S4S6S7C1C2C3C4I1I2I3I4I5I6I7I82、求主多邊形和裁剪多邊形的交點,建立入點表和出點表;并將這些交點按順序插入兩多邊形的頂點環(huán)表。在兩多邊形頂點環(huán)表中的相同交點間建立雙向指針;I2I4I6I8I1I3I5I7主裁入出S1I2I3S2I4S3I5S4I6I7S5I8S6I1S7C1I1I2C2I3I4C3I5I6C4I7I8C173S5S1S2S3S4S6S7C1C2C3C4I1I2I3I4I5I6I7I8S1I2I3S2I4S3I5S4I6I7S5I8S6I1S7S1C1I1I2C2I3I4C3I5I6C4I7I8C1主裁I2I4I6I8I1I3I5I7入出74S1S2S3S4S5S6S7S8S9C1C2C3C4I1I2I3I4I1I3I2I4入出S1S2S3S4S5I1S6I2S7S8S9I3I4S1C1I3C2I2C3I1C4I4C1主裁75出點:I0,I2,I4,I6,I8,I10入點:I1,I3,I5,I7,I9,I11例1767778例2A4A1A3A2A5A6A7A8W1W2W3W4W5W6I1I2I3I4I5I6入點表:I1,I3,I5出點表:I2,I4,I679主多邊形環(huán)表:W1,W2,W3,I2,W4,I5,I4,W5,W6,I3,I6,I1,W1A1,I1,A2,I2,A3,A4,A1;A5,A6,I3,I4,A7,A8,I5,I6,A5外邊界頂點內(nèi)邊界頂點裁剪多邊形環(huán)表入點表:I1,I3,I5出點表:I2,I4,I680主多邊形環(huán)表:W1,W2,W3,I2,W4,I5,I4,W5,W6,I3,I6,I1,W1A1,I1,A2,I2,A3,A4,A1;A5,A6,I3,I4,A7,A8,I5,I6,A5外邊界頂點內(nèi)邊界頂點裁剪多邊形環(huán)表入點表:I1,I3,I5出點表:I2,I4,I681交點的奇異情況處理1、與裁剪多邊形邊重合的主多邊形的邊不參與求交點;2、對于頂點落在裁剪多邊形的邊上的主多邊的邊,如果落在該裁剪邊的內(nèi)側(cè),將該頂點算作交點;而如果這條邊落在該裁剪邊的外側(cè),將該頂點不看作交點824.字符裁剪字符和文本部分在窗內(nèi)、部分在窗外時,就出現(xiàn)字符裁剪問題。STRING1STRING2STRING1字符裁剪按三個精度進行:串精度、字符精度、以及筆畫\象素精度。串精度裁剪:將包圍字串的外接矩形對窗口作裁剪。當字符串方框整個在窗口內(nèi)時予以顯示,否則不顯示。83

字符精度裁剪:將包圍字的外接矩形對窗口作裁剪,某個字符方框整個落在窗口內(nèi)予以顯示,否則不顯示。STRING1STRING2STRING1ING284筆畫\象素精度裁剪:將矢量字符的筆劃分解成直線段對窗口作裁剪;將點陣字符的像素相對窗口邊界作取舍。STRING1STRING2STRING1STRING2855.33維觀察控制流程

1.定義

把世界坐標系描述的3維景物對象最終變換到計算機圖形輸出設(shè)備坐標系中,生成3維景物的視圖(像)的整個過程。862.3維觀察過程NDCDCWCVC觀察方向觀察平面窗口ExeyezeOXwYwZw87類比照像機拍攝景物的過程拍攝過程選景取景---裁剪對焦—參考點按快門--成像移動方式移動景物移動照相機兩個坐標系88簡單的三維圖形顯示流程圖893.3維觀察控制流程WC:描述3D景物WC到VC變換VC:定義觀察體、規(guī)范化裁剪空間NVCNDC投影變換NDC到DC窗口視區(qū)變換DC:

景物視圖顯示NVC:規(guī)范化裁剪空間裁剪MC到WC變換MC:模型描述905.4觀察坐標系及其變換

1.觀察坐標系定義觀察坐標系(ViewReferenceCoordinate或VRC)照相機所在的坐標系

如何建立觀察坐標系坐標原點----聚焦參考點在底片(投影平面)上的投影,稱為觀察參考點VRP(ViewReferencePoint)n軸(N)----照相機鏡頭方向(投影平面的法向VPN)v軸(V)----照相機向上的方向(代表觀察正向VUP)u軸(U)----91(觀察平面)VUPV(Ye)U(Xe)N(Ze)VUPVVPNVRPu、v、n分別表示

U、V、N的單位向量92為什么采用觀察坐標系?攝像類比問題:移動舞臺還是移動攝像機?移動舞臺:投影(攝像)簡單;移動難度大。移動攝像機:移動容易;投影復(fù)雜。采用了觀察坐標系:簡化投影,加速投影變換投影平面----n=0投影中心----(0,0,d)932.WC到VC的變換條件:VRC的坐標原點(觀察參考點)VRP(XR,YR,ZR);投影平面法向VPN;觀察正向VUP;(1)單位矢量法[uvn1]=[xyz1].TWtoV94TWtoV=TT.TR(X,Y,Z)

100001000010-XR-YR-ZR1=uxvxnx0uyvyny0uzvznz0000195(2)組合變換法1)WC原點O平移到視點E(m,n,l)EX’Y’Z’XYZO100001000010-m–n–l1T1=962)Ex’y’z’坐標系轉(zhuǎn)成左手坐標系EX’Y’Z’-1000010000100001T2=973)Ex’y’z’新坐標系繞x’順時針旋轉(zhuǎn)90oZ’Y’X’E100000-1001000001T3=984)Ex’y’z’新坐標系繞y’順時針旋轉(zhuǎn)dydxdzEX’Y’Z’

cos0-sin00100sin0cos00001T4=sin=dxdx2+dy2cos=dydx2+dy2,99求得復(fù)合變換矩陣TWtoV為

TWtoV=T1·T2·T3·T4·T5[xeyeze1]=[xyz1]·TWtoV100將3維景物對象變換成2維平面圖形的過程。投影是三維對象表示的基本研究內(nèi)容之一。投影:將n維的點變換成小于n維的點。

將3維的點變換成2維的點。5.5投影變換

一.投影分類

101投影中心與投影平面之間的距離為有限

投影中心與投影平面之間的距離為無限

102投影中心(COP:CenterofProjection)視覺系統(tǒng)—觀察點、視點;電影放映機—光源投影面不經(jīng)過投影中心;平面--照相機底片;曲面—球幕電影視網(wǎng)膜103二.平行投影

正投影和斜投影104(1)三視圖105XZml主視圖俯視圖側(cè)視圖106(5-27)1)先投影后旋轉(zhuǎn)主視圖變換矩陣TV:空間對象向V面作正投影。

1000000000100001TV=107

100001000000000110000100001000-m1

10000cos(-90°)sin(-90°)00-sin(-90°)cos(-90°)00001TH=

100000–10000000–m1=(5-28)俯視圖變換矩陣TH:向H面作正投影;將H面繞X軸順時針旋轉(zhuǎn)90°;沿-Z方向平移距離m。108側(cè)視圖變換矩陣TW:

TW=T(x=0)*TRz(90)*TT(x=-l)

0000-10000010-l001(5-29)

=1092)先旋轉(zhuǎn)后投影TV

形式與結(jié)果均不變;TH=TRx(-90o).TV.TT(z=-m),結(jié)果不變;TW=TRz(90o).TV.TT(x=-l),結(jié)果不變。110(2)正軸測投影分正等測、正二測和正三測三種投影。如圖,當投影面與X、Y、Z軸之間的夾角都相等(即OX1=OY1=OZ1)時為正等測;111當OX1、OY1和OZ1中有兩個相等時為正二測;當OX1、OY1和OZ1均不等時為正三測。112如圖,把空間對象先繞Y軸逆時針旋轉(zhuǎn)φ角,再繞X軸順時針旋轉(zhuǎn)θ角,最后向XOY坐標平面作正投影,得到正軸測投影。113114115然后在Z坐標軸方向作正投影,得到正軸測投影的變換矩陣TAxon=TRy·TRx·TZ1161)正等測投影

OA=OB=OC

1171182)正二測投影幾何條件:兩個軸向變形系數(shù)保持相等,第三個軸向變形系數(shù)在滿足p2+q2+r2=2的條件下可任取。OA=OC1193)正三測投影幾何條件:三條軸的軸向變形系數(shù)均不相等。其變換矩陣即為式(6-32)。

cosφ0-sinφsinθ0-sinφ0-cosφsinθ000cosθ00001

TAxon=(5-32)120(3)斜軸測投影121如圖6-13,設(shè)投影面為XOZ平面,投影方向與投影面的夾角為θ,投影線在XOZ平面上的投影與X軸的夾角為φ??臻g點P(x,y,z)在投影面上的斜投影為P′(x′,0,z′),正投影為P0(x,0,z)。P(x,y,z)P’(x’,y’,z’)P0θφZYX投影面投影方向122任意點的斜投影坐標為:x′=x+yctgθcosφy′=0(5-41)z′=z+yctgθsinφTObl=

1000ctgθcosφ0ctgθsinφ000100001(5-42)123若θ=45°,斜軸測投影的投影方向與投影面成45°角,即斜等測投影。若投影方向與投影面之間的夾角為arctg(2)時,得到的是斜二測投影;此時,與投影面垂直的直線將投影成一半長度。若θ=90°,L=0,此時的斜軸測投影已轉(zhuǎn)化為正投影。為了同時反映對象在三個方向上的形狀,通常取φ為45°或30°。

124三.透視投影投影中心與投影平面之間的距離為有限參數(shù):投影方向,d例子:室內(nèi)白熾燈的投影,視覺系統(tǒng)滅點:不平行于投影平面的平行線,經(jīng)過透視投影之后收斂于一點,稱為滅點.投影中心125主滅點:平行于坐標軸的平行線在投影面上的滅點。主滅點數(shù)最多有三個。若某坐標軸與投影面垂直,則只有一個主滅點,且在該坐標軸上。按主滅點個數(shù),透視投影分為:一點透視兩點透視三點透視126127特點:產(chǎn)生近大遠小的視覺效果,由它產(chǎn)生的圖形深度感強,看起來更加真實。128投影面dxeyezeP(xe,ye,ze)P’(xs,ys,zs)Oexs=xed/zeys=yed/zezs=d(5-44)[XSYSZSH]=[xeyeze1].TPer(1)點的透視投影129[xsyszs1]=[xeze/dyeze/dd1]H=ze/d,TPerz=

10000100001r0000

,r=1/d,滅點在(0,0,1/r)視點在原點,投影面垂直于Z軸的透視變換矩陣:130TPery=

1000010q00100000,q=1/d,滅點在(0,1/q,0)TPerx=

100p010000100000

,p=1/d,滅點在(1/p,0,0)視點在原點,投影面垂直于Y、X軸的透視:131TPer2=

100p010q00100000TPer3=

100p010q001r0000兩點透視、三點透視的變換矩陣:132(2)物體對象的透視投影形成步驟:1)在物體對象所在的WC中,建立以視點為原點的觀察坐標系OeXeYeZe(投影平面垂直Ze,觀察方向與Ze重合)。2)物體對象從WC轉(zhuǎn)換到VC中描述。3)在VC中,將物體對象旋轉(zhuǎn):繞兩坐標軸轉(zhuǎn)形成三點透視,繞一坐標軸轉(zhuǎn)形成兩點透視,一點透視不用旋轉(zhuǎn)。4)在VC中,將物體對象平移到適當位置。5)作透視變換,并向投影面投影。1331)~2)步后面會專門講解。物體經(jīng)3)~5)步的變換矩陣為:TPer-ob=Tye().

Txe().TT.TPerz.T(zs=d)=cos(-)0-sin(-)00100sin(-)0cos(-)0000110000cos(-)sin(-)00-sin(-)cos(-)00000

100001000010

lmn1

100001000011/d0000

100001000000

00d1(5-50)134把(6-50)的透視投影再向XeOeYe平面作正投影(壓縮):TPer-ob=cossinsin0sincos/d0cos0-sin/d-sincossin0coscos/dlm0n/d(5-51)當==0,(6-51)的結(jié)果為一點透視變換矩陣;當、中只有一個0時,結(jié)果為兩點透視變換矩陣;當、均0時,結(jié)果為三點透視變換矩陣(6-51)。1355.6觀察體觀察體是三維裁剪窗口。觀察窗口可在觀察平面的任何位置,窗口中心CW可不與觀察坐標系原點重合。136一、觀察空間與觀察體

觀察空間是世界坐標系中的一個子空間,由經(jīng)過觀察窗口四條邊的四個平面圍成的。其大小決定于觀察窗口大小。

透視投影的觀察空間是頂點在投影中心COP(投影參考點PRP)、棱邊通過窗口四個角點而沒有底面的無限四棱錐。

平行投影的觀察空間則是一個四條棱邊平行于投影方向(從投影參考點PRP指向窗口中心CW)且通過窗口四個角點的、兩端沒有底面的無限長的方管。137投影參考點PRP(ProjectionReferencePoint)透視投影:投影中心COP==投影參考點PRP平行投影:投影方向DOP=窗口中心CW-PRP138觀察空間內(nèi)處于不同深度的景物都將投影在觀察窗口內(nèi),引起投影重疊;另一方面,靠近透視投影中心的物體對象的投影只有很小一部分在觀察窗口內(nèi),而遠離投影中心的物體對象在觀察窗口內(nèi)將投影成一個模糊的小點,因此,必須采用有限的觀察空間----觀察體選取觀察目標。在投影中心COP的同一側(cè),沿投影方向DOP用平行于觀察平面的前截面FP和后截面BP截取無限的觀察空間,得到一個有限的六面體,稱為觀察體。139前、后截面的區(qū)別由投影線按投影方向穿過截面的順序決定。透視投影的觀察體為四棱臺;平行投影的觀察體是截面為矩形的棱柱。140COP(PRP)FPBPVRPCWu(v)n觀察體中心線投影平面VP透視投影過觀察體中心線的截面圖141FPVPBPu(v)nVRPDOP正投影觀察體中心線的截面圖142定義觀察體參數(shù)

參數(shù)作用投影類型定義投影是平行投影還是透視投影觀察參考點VRP在世界坐標系中指定,為觀察坐標系原點觀察平面法向VPN在世界坐標系中指定,為觀察坐標的n軸觀察正向VUP在世界坐標系中指定,確定觀察坐標系的v軸投影參考點PRP在觀察坐標系中指定確定投影中心或投影方向前裁剪面裁距F在觀察坐標系中指定,n=F為前裁剪面后裁剪面裁距B在觀察坐標系中指定,n=B為后裁剪面窗口umin、umax、vmin、vmax在觀察坐標系的uv平面上指定,確定窗口與視見體

143透視投影變換問題----在uvn中,投影平面為n=0,投影中心為(0,0,d),待投影點為P,求投影點Q。144投影線的參數(shù)方程:投影平面方程n=0Q點的坐標:145透視投影變換矩陣146平行投影變換問題----在uvn中,投影平面為n=0,投影方向為(0,0,-1),待投影點為P,求投影點Q147投影線的參數(shù)方程投影平面方程n=0Q點的坐標148平行投影變換矩陣透視投影與平行投影之間的關(guān)系149二、投影舉例待投影的單位立方體150缺省投影參數(shù)參數(shù) 值投影類型 平行投影VRP(WC)(0,0,0)VPN(WC)(0,0,1) VUP(WC)(0,1,0)PRP(VRC)(0.5,0.5,1)窗口(VRC)

(0,1,0,1)F(VRC) 正無窮B(VRC)

負無窮151透視投影一點透視參數(shù) 值投影類型 透視投影VRP(WC)(0,0,0)VPN(WC)(0,0,1)VUP(WC)(0,1,0)PRP(VRC)(0.5,0.5,4)窗口(VRC)(-0.5,1.5,-0.5,1.5)參數(shù) 值投影類型 透視投影VRP(WC)(0,0,0)VPN(WC)(0,0,1)VUP(WC)(0,1,0)PRP(VRC)(2.0,2.0,4.0)窗口(VRC)(-0.5,1.5,-0.5,1.5)152兩點透視參數(shù) 值 投影類型 透視投影VRP(WC)(0,0,0)VPN(WC)(1,0,1)VUP(WC)(0,1,0)PRP(VRC)(0.5,0.5,4)窗口(VRC)

(-1.5,1.5,-1.5,1.5)

參數(shù) 值 投影類型 透視投影VRP(WC)(0,0,0)VPN(WC)(1,0,1)VUP(WC)(1,1,0)PRP(VRC)(0.5,0.5,4)窗口(VRC)

(-1.5,1.5,-1.5,1.5)

153平行投影參數(shù) 值投影類型平行投影VRP(WC)(0,0,0)VPN(WC)(0,0,1)VUP(WC)(0,1,0)PRP(VRC)(0.5,0.5,1)窗口(VRC)

(-0.5,1.5,0.5,1.5)

參數(shù) 值投影類型平行投影VRP(WC)(0,0,0)VPN(WC)(1,1,1)VUP(WC)(0,1,0)PRP(VRC)(0.5,0.5,2)窗口(VRC)

(-0.5,1.5,0.5,1.5)

154前、后裁剪面的影響參數(shù) 值投影類型透視投影VRP(WC)(0,0,0)VPN(WC)(0,0,1)VUP(WC)(0,1,0)PRP(VRC)(0.5,0.5,2)窗口(VRC)(-0.5,1.5,-0.5,1.5)F(VRC)1.2B(VRC)0.2155平行投影的規(guī)范觀察體半立方體三、規(guī)范觀察體156透視投影的規(guī)范觀察體四棱臺157為什么引入規(guī)范觀察體簡化投影,簡化裁剪規(guī)范化變換將任意觀察體變換成規(guī)范觀察體的變換規(guī)范投影坐標(三維屏幕坐標)經(jīng)規(guī)范化的觀察坐標系158采用規(guī)范觀察體的三維觀察流程圖:159平行投影觀察體的規(guī)范化將任意的平行投影觀察體變換為規(guī)范平行投影觀察體Npar=TTpar1?TSHpar?TTpar2?TSpar160161透視投影觀察體的規(guī)范化將任意的透視投影觀察體變換為規(guī)范透視投影觀察體Nper=TTper?TSHper?TSper162163規(guī)范觀察體之間的變換將透視投影的規(guī)范觀察體變換為平行投影的規(guī)范觀察體為什么?關(guān)于長方體的裁剪較關(guān)于正四棱臺的裁剪簡單。平行投影較透視投影簡單。透視投影與平行投影都采用同一套裁剪與投影程序,處理一致,便于用硬件實現(xiàn)164采用觀察體變換的三維觀察流程圖1655.7三維裁剪兩種方法將齊次坐標轉(zhuǎn)換為三維坐標,在三維空間關(guān)于觀察體裁剪優(yōu)點:三維裁剪相對容易缺點:需要將齊次坐標轉(zhuǎn)換為三維坐標直接在四維齊次坐標空間中進行裁剪優(yōu)點:不需要將齊次坐標轉(zhuǎn)換為三維坐標有理曲線曲面可能直接用齊次坐標來表示,對它們的裁剪只能在齊次坐標空間中進行

缺點:四維裁剪相對復(fù)雜166關(guān)于規(guī)范觀察體的裁剪直線段裁剪的Cohen_Sutherland算法、梁_Barskey算法的直接推廣多邊形裁剪的Sutherland_Hodgman算法的直接推廣齊次坐標空間中的裁剪四維裁剪體的定義167三維裁剪的實現(xiàn)過程

1、將三維坐標擴展為齊項坐標,(x,y,z)(x,y,z,1);2、進行模型變換;3、進行觀察變換;4、進行視見體的規(guī)范化變換Npar或Nper;5、除以h返回三維空間(有些情況下,h保持為1,所以不必做除法運算);6、關(guān)于規(guī)范視見體進行裁剪;7、將三維坐標擴展為齊次坐標;8、進行投影變換Mort或Mper;9、進行窗口至視區(qū)的變換;10、除以h返回二維設(shè)備坐標系;11、掃描轉(zhuǎn)換(顯示)。168齊次坐標空間裁剪的實現(xiàn)過程1、將三維坐標擴展為齊次坐標(對于直接用齊次坐標表示的圖形不需要進行這一步);2、進行模型變換;3、進行觀察變換;4、進行視見體的規(guī)范化變換Npar或;5、在齊項坐標空間中關(guān)于裁剪窗口裁剪;6、進行平行投影變換Mort。7、進行窗口至視區(qū)的變換。8、除以h返回二維設(shè)備坐標系。

9、掃描轉(zhuǎn)換(顯示)。169OpenGL中的變換從三維空間到二維平面

實際上,從三維空間到二維平面,就如同用相機拍照一樣,通常都要經(jīng)歷以下幾個步驟(括號內(nèi)表示的是相應(yīng)的圖形學(xué)概念):

第一步,將相機置于三角架上,讓它對準三維景物(視點變換,ViewingTransformation)。

第二步,將三維物體放在適當?shù)奈恢茫P妥儞Q,ModelingTransformation)。

第三步,選擇相機鏡頭并調(diào)焦,使三維物體投影在二維膠片上(投影變換,ProjectionTransformation)。

第四步,決定二維像片的大?。ㄒ暱谧儞Q,ViewportTransformation)。

這樣,一個三維空間里的物體就可以用相應(yīng)的二維平面物體表示了,也就能在二維的電腦屏幕上正確顯示了170#include"glos.h"

#include<GL/gl.h>

#include<GL/glu.h>

#include<GL/glaux.h>

voidmyinit(void);

voidCALLBACKmyReshape(GLsizeiw,GLsizeih);

voidCALLBACKdisplay(void);

voidCALLBACKdisplay(void)

{

glClear(GL_COLOR_BUFFER_BIT);

glColor3f(1.0,1.0,1.0);

glLoadIdentity();/*clearthematrix*/

glTranslatef(0.0,0.0,-5.0);/*viewingtransformation*/

glScalef(1.0,2.0,1.0);/*modelingtransformation*/

auxWireCube(1.0);/*drawthecube*/

glFlush();

}171voidmyinit(void)

{

glShadeModel(GL_FLAT);

}

voidCALLBACKmyReshape(GLsizeiw,GLsizeih)

{

glMatrixMode(GL_PROJECTION);/*prepareforandthen*/

glLoadIdentity();/*definetheprojection*/

glFrustum(-1.0,1.0,-1.0,1.0,1.5,20.0);/*transformation*/

glMatrixMode(GL_MODELVIEW);/*backtomodelviewmatrix*/

glViewport(0,0,w,h);/*definetheviewport*/

}

voidmain(void)

{

auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);

auxInitPosition

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論