《计算机图形学裁剪优秀课件.ppt》由会员分享,可在线阅读,更多相关《计算机图形学裁剪优秀课件.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机图形学裁剪第1页,本讲稿共36页直线直线P0P1的参数方程的参数方程对于直线上一点对于直线上一点(x,y),),若若它在窗口内则有它在窗口内则有梁友栋-Barsky算法BLP0P1RTxLxRyByTxy22009-2010-2:CG:SCUEC第2页,本讲稿共36页令令则有则有由由梁友栋-Barsky算法32009-2010-2:CG:SCUEC第3页,本讲稿共36页梁友栋-Barsky算法由由42009-2010-2:CG:SCUEC第4页,本讲稿共36页v设P0P1和两条始边的交点参数为t0,t0”,令 t0=max(t0,t0”,0),则t0就是P0P1和两条始边的交点与P0三点
2、中最靠近P1的点的参数。v设P0P1和两条终边的交点参数为t1,t1”,令 t1=min(t1,t1”,1),则t1就是P0P1和两条终边的交点与P1三点中最靠近P0的点的参数。v当t1t0时,参数tt0,t1的线段就是P0P1的可见部分v当t1t0时,整个线段为不可见。为什么为什么?梁友栋-Barsky算法52009-2010-2:CG:SCUEC第5页,本讲稿共36页1.初始化线段在边界内的端点参数为初始化线段在边界内的端点参数为t0=0、t1=1。2.计算出各个裁剪边界的计算出各个裁剪边界的q、d值。值。3.当当q=0且且d 0时,舍弃该线段;否则计算线段与边界的时,舍弃该线段;否则计算
3、线段与边界的交点参数交点参数t。4.当当q 0时,参数时,参数t 用于更新用于更新t1。6.如果更新了如果更新了t0或或t1后,使后,使t0t1,则舍弃该线段。否则画出以,则舍弃该线段。否则画出以t0和和t1为参数的线段为参数的线段梁友栋-Barsky算法的基本步骤62009-2010-2:CG:SCUEC第6页,本讲稿共36页梁友栋-Barsky算法double t0=0,t1=1;double xL,xR,yB,yT;bool visible;void Liang_Barsky(double x2,double y2)double dx,dy;visible=false;dx=x1-x0;
4、dy=y1-y0;if(clipt(-dx,x0-xL)if(clipt(dx,xR-x0)if(clipt(-dy,y0-yB)if(clipt(dy,yT-y0)visible=true;if(visible)drawline(P0+(P1-P0)t0,P0+(P1-P0)t1);Boo clipt(double q,double d)double t;if(q t1)return false;else if(t t0)t0=t;else if(q 0)/属于终点边参数 t=q/d;if(t t0)return false;else if(t t1)t1=t;else if(d 0,则,则
5、P(t)在在L内侧。内侧。2)N (P(t)-A)=0,则,则P(t)在在L或其延长线上或其延长线上。3)N (P(t)-A)0t ti,当,当Ni(P2-P1)0i=1,2,k而而是线段与第是线段与第i条边界(或延长线)的交点参数。条边界(或延长线)的交点参数。Cyrus-Beck算法102009-2010-2:CG:SCUEC第10页,本讲稿共36页 解的几何意义:解的几何意义:Ni(P2-P1)把把ti分为两组:分为两组:起点组起点组和和终点组终点组。解的几何意义终点组起点组P2P1终点组终点组以以Ni(P2-P1)0为特征,表示在该处沿为特征,表示在该处沿P1P2方向前方向前进进入多边
6、形内侧。进进入多边形内侧。t ti,当,当Ni(P2-P1)0t ti,当,当Ni(P2-P1)0|te=min1,minti|Ni(P2-P1)0|若若ts te,则,则ts和和te是可见线段的端点参数,否则,整条线段在区域外部。是可见线段的端点参数,否则,整条线段在区域外部。Cyrus-Beck算法112009-2010-2:CG:SCUEC第11页,本讲稿共36页若对于某个若对于某个i,有,有Ni(P2-P1)=0,这时,这时,Ni P2-P1,P1P2与对应边平行,如与对应边平行,如图所示。这时有两种情况:线段在区域外侧或内侧。前一种情况对应图所示。这时有两种情况:线段在区域外侧或内侧
7、。前一种情况对应于于Ni(P1-Ai)0则不予考虑(因为没有交点),继续处理则不予考虑(因为没有交点),继续处理其他边界。其他边界。线段与多边形边平行122009-2010-2:CG:SCUEC第12页,本讲稿共36页Cyrus-Beck算法double ts=0,te=1;int Cyrus_Beck(double A 2,double N 2,int k,double x2,double y2)int i,j;double t,dn,nw,Rs2,Re2;for(i=0;ik;i+)dn=Ni0*(x1-x0)+Ni1*(y1-y0);/计算Ni(P2-P1)nw=Ni0*(x0-Ai0)
8、+Ni1*(y0-Ai1);/计算Ni(P1-Ai)if(fabs(dn)1.0e-6)/与边界平行 if(nw 0)/属于起点组参数 if(t ts)ts=t;/求最大值 else if(t te)te=t;/属于终点组,求最小值 if(ts=te)/起点组的最大值小于等于终点组的最小值 Rs0=(x1-x0)*ts+x0;Rs1=(y1-y0)*ts+y0;/计算起点坐标 Re0=(x1-x0)*te+x0;Re1=(y1-y0)*te+y0;/计算终点坐标 LineFunction(double Rs,double Re);return 1;return 0;/起点组的最大值大于终点组的
9、最小值132009-2010-2:CG:SCUEC第13页,本讲稿共36页当凸多边形是矩形窗口,且矩形的边平当凸多边形是矩形窗口,且矩形的边平行于坐标轴时,上述算法可简化为梁友行于坐标轴时,上述算法可简化为梁友栋栋-Barsky算法。由于每条边上法向量只有算法。由于每条边上法向量只有一个非零分量一个非零分量,所以任意一个向量与法向量所以任意一个向量与法向量求内积的运算很简单。求内积的运算很简单。Cyrus-Beck算法特例Liang-Barsky算法边内法向量N边上一点AP1-A左边x=XL(1,0)(XL,y)(x1-XL,y1-y)右边x=XR(-1,0)(XR,y)(x1-XR,y1-y
10、)下边y=YB(0,1)(x,YB)(x1-x,y1-YB)上边y=YT(0,-1)(x,YT)(x1-x,y1-YT)A1A2A3A4P1P2142009-2010-2:CG:SCUEC第14页,本讲稿共36页多边形是由一组线段围成的封闭区域,线段裁剪是多边形裁剪的多边形是由一组线段围成的封闭区域,线段裁剪是多边形裁剪的基础。下图(基础。下图(b)是多边形的线段被裁剪后的结果,但已不再是封闭的区)是多边形的线段被裁剪后的结果,但已不再是封闭的区域。域。正确的剪裁结果应是一个有边界的区域,即裁剪后的结果仍是一正确的剪裁结果应是一个有边界的区域,即裁剪后的结果仍是一个(或多个)多边形个(或多个)
11、多边形,这就要求在裁剪过程中应当保留多边形的区域,这就要求在裁剪过程中应当保留多边形的区域性质。性质。(a)裁剪前裁剪前(c)对多边形区域做裁剪对多边形区域做裁剪(b)仅对多边形的线段做裁剪仅对多边形的线段做裁剪多边形裁剪多边形裁剪多边形裁剪-凸多边形的二维裁剪152009-2010-2:CG:SCUEC第15页,本讲稿共36页Sutherland-Hodgman算法Sutherland-Hodgman 算法 对对多多边边形形裁裁剪剪的的SutherlandHodgman算算法法是是一一种种十十分分简简便便的的方方法法,只只要要对对多多边边形形用用窗窗口口的的四四条条边边依依次次裁裁剪剪四四次
12、次(见见下下图图)便便可可得得到裁剪后的多边形。到裁剪后的多边形。v算法的输入是以顶点序列表示的多边形,输出也是一个顶点算法的输入是以顶点序列表示的多边形,输出也是一个顶点序列,构成一个或多个多边形。序列,构成一个或多个多边形。v考虑以窗口的一条边及其延长线构成的裁剪线,该线把平面分考虑以窗口的一条边及其延长线构成的裁剪线,该线把平面分成两部分:一部分包含窗口,称为可见侧;另一部分称为不可成两部分:一部分包含窗口,称为可见侧;另一部分称为不可见侧。见侧。162009-2010-2:CG:SCUEC第16页,本讲稿共36页线段端点S、P与裁剪线的位置关系对多边形的每一条边,假设它的两个端点分别为
13、对多边形的每一条边,假设它的两个端点分别为S和和P。则它与裁剪。则它与裁剪直线的位置关系只有直线的位置关系只有4种情况。种情况。S、P与裁剪线的四种位置关系与裁剪线的四种位置关系(b)(c)(d)S可见侧可见侧可见侧可见侧SPSPSPP(a)II根据上述根据上述4种情况,线段种情况,线段SP经裁剪后可输出经裁剪后可输出0至至2个顶点。个顶点。情况情况1:S、P都在可见一侧,则输出都在可见一侧,则输出P。情况情况2:S、P都在不可见一侧,则不输出顶点。都在不可见一侧,则不输出顶点。情况情况3:S在可见一侧,在可见一侧,P在不可见一侧,则输出在不可见一侧,则输出SP与裁剪线的交点点与裁剪线的交点点
14、I。情况情况4:S在不可见一侧,在不可见一侧,P在可见一侧,则输出在可见一侧,则输出SP与裁剪线的交点点与裁剪线的交点点I和和P。172009-2010-2:CG:SCUEC第17页,本讲稿共36页Sutherland-Hodgman算法框图Sutherland-Hodgman算法流程图(1)主框图开始第一个顶点S,F顶点输入完毕输入顶点P处理线段SPPSFP处理线段SP结束NY(2)处理线段SP子过程SP与裁剪线相交求SP与裁剪线的交点I输出IP位于可见侧输出PNNYY左左算算法法框框图图仅仅描描述述用用一一条条裁裁剪剪边边对对多多边边形形裁裁剪剪,得得到到一一个个顶顶点点序序列列,作作为为
15、下下一一条条裁裁剪剪边边处处理理过过程程的的输输入入。对对于于每每条条裁裁剪剪边边,算算法法的的框框图图是是一一样样的的,只只是是判判断断点点在在裁裁剪剪边边哪哪一一侧侧以以及及求求线线段段SP与与裁裁剪剪边边的的交交点点算算法法应应做做相相应应的的改改变。变。182009-2010-2:CG:SCUEC第18页,本讲稿共36页1从主函数得到待裁剪多边形的顶点序列从主函数得到待裁剪多边形的顶点序列P2、顶点序列数、顶点序列数n、窗口一条边界参数窗口一条边界参数xl(假如为矩形窗口的左边界假如为矩形窗口的左边界);2赋初值:赋初值:将顶点序列中的最后一个顶点赋给前一顶点将顶点序列中的最后一个顶点
16、赋给前一顶点S;设置初始标志设置初始标志flag:if(S在边界内侧在边界内侧)flag=0;elseflag=1;设新的顶点序列数设新的顶点序列数j=0;考虑多边形相对于一条边界及其延长线进行裁剪的算法:考虑多边形相对于一条边界及其延长线进行裁剪的算法:Sutherland-Hodgman算法步骤192009-2010-2:CG:SCUEC第19页,本讲稿共36页3、对多边形各顶点进行裁剪规则处理,结果放入新的多边形顶点序列、对多边形各顶点进行裁剪规则处理,结果放入新的多边形顶点序列Q2中:中:for(对第一个顶点直到最后一个顶点,逐一处理)对第一个顶点直到最后一个顶点,逐一处理)if(Pi
17、在边界内侧在边界内侧)if(flag!=0)flag=0;求交点并放入新的多边形顶点序列求交点并放入新的多边形顶点序列Qj中;中;j+;将当前顶点放入新的多边形顶点序列将当前顶点放入新的多边形顶点序列Qj中:中:Qj=Pi;j+;elseif(flag=0)flag=1;求交点并放入新的多边形顶点序列求交点并放入新的多边形顶点序列Qj中;中;j+;将当前顶点赋给将当前顶点赋给S:S=Pi;Sutherland-Hodgman算法步骤S-H算法演示例子算法演示例子完整的完整的S-H程序程序202009-2010-2:CG:SCUEC第20页,本讲稿共36页Sutherland-Hodgeman算
18、法v对凸多边形应用本算法可以得到正确的结果,但是对凹多边形的裁剪将如图所对凸多边形应用本算法可以得到正确的结果,但是对凹多边形的裁剪将如图所示显示出一条多余的直线。这种情况在裁剪后的多边形有两个或者多个分离部示显示出一条多余的直线。这种情况在裁剪后的多边形有两个或者多个分离部分的时候出现。因为只有一个输出顶点表,所以表中最后一个顶点总是连着第分的时候出现。因为只有一个输出顶点表,所以表中最后一个顶点总是连着第一个顶点。一个顶点。v解决这个问题有多种方法,一是把凹多边形分割成若干个凸多边形,然后分别处理各个解决这个问题有多种方法,一是把凹多边形分割成若干个凸多边形,然后分别处理各个凸多边形。二是
19、修改本算法,沿着任何一个裁剪窗口边检查顶点表,正确的连接顶点对。凸多边形。二是修改本算法,沿着任何一个裁剪窗口边检查顶点表,正确的连接顶点对。三就是三就是Weiler-Athenton算法算法。212009-2010-2:CG:SCUEC第21页,本讲稿共36页字符裁剪v串精度裁剪串精度裁剪v字符精度裁剪字符精度裁剪v以及笔画以及笔画 象素精度象素精度:将笔划分解成直线段对窗口作裁剪将笔划分解成直线段对窗口作裁剪v基于构成字符最小元素裁剪基于构成字符最小元素裁剪v见教材见教材P82P82222009-2010-2:CG:SCUEC象素精度裁剪STRINGSTRING2STRING2串精度裁剪S
20、TRINGSTRING2待裁剪字符串RINGSTRING2字符精度裁剪第22页,本讲稿共36页结结结结 束束束束第23页,本讲稿共36页练习题v描述如何用一个圆形窗口裁剪一条直线。描述如何用一个圆形窗口裁剪一条直线。242009-2010-2:CG:SCUEC第24页,本讲稿共36页完整Sutherland-Hodgman算法const int RIGHT=1;const int BOTTOM=2;const int LEFT=3;const int TOP=4;clip_polygon(int xR,int xL,int yB,int yT,int n,int*x,int*y)int*x1,
21、*y1,n1;clip_single_edge(xR,RIGHT,n,x,y,&n1,&x1,&y1);clip_single_edge(yB,BOTTOM,n1,x1,y1,&n,&x,&y);clip_single_edge(xL,LEFT,n,x,y,&n1,&x1,&y1);clip_single_edge(yT,TOP,n1,x1,y1,&n,&x,&y);252009-2010-2:CG:SCUEC第25页,本讲稿共36页clip_single_edge(int edge,const int TYPE,int nin,int*xin,int*yin,int*nout,int*xou
22、t,int*yout)inti,k;boolis_cross,is_in;intx,y,x_intersect,y_intersect;x=xinnin-1;y=yinnin-1;k=0;for(i=0;inin-1;i+)test_intersect(edge,type,x,y,xini,yini,&x_intersect,&y_intersect,&is_cross,&is_in);if(is_cross)xoutk=x_intersect;youtk=y_intersect;k+;if(is_in)xoutk=xini;youtk=yini;k+;x=xini;y=yini;/endof
23、for*nout=k;262009-2010-2:CG:SCUEC第26页,本讲稿共36页switch(type)case RIGHT:if(x2edge)is_cross=true;else if(x1=edge)is_in=true;if(y1=edge)is_cross=true;break;/end of BOTTOMtest_intersect(int edge,const int type,int x1,int y1,int x2,int y2,int*xout,int*yout,bool*is_cross,bool*is_in)float m;is_cross=is_in=fal
24、se;m=(y2-y1)/(x2-x1);272009-2010-2:CG:SCUEC第27页,本讲稿共36页 case LEFT:if(x2=edge)is_in=true;if(x1=edge)is_cross=true;break;/end of LEFT case TOP:if(y2edge)is_cross=true;else if(y1=edge)is_cross=true;default:break;/end of switch(type)282009-2010-2:CG:SCUEC第28页,本讲稿共36页if(is_cross)if(type=RIGHT)|(type=Left
25、)xout=edge;yout=y1+m*(xout-x1);elseyout=edge;xout=x1+(yout-y1)/m;完整Sutherland-Hodgman算法292009-2010-2:CG:SCUEC第29页,本讲稿共36页Weiler-Atherton任意多边形裁剪 vSutherland-Hodgeman算法解决了裁剪窗口算法解决了裁剪窗口为凸多边形窗口的问题,但一些应用需要涉为凸多边形窗口的问题,但一些应用需要涉及任意多边形窗口(含凹多边形窗口)的裁及任意多边形窗口(含凹多边形窗口)的裁剪。剪。Weiler-Atherton多边形裁剪算法正是满多边形裁剪算法正是满足这种
26、要求的算法。足这种要求的算法。302009-2010-2:CG:SCUEC第30页,本讲稿共36页1.WA任意多边形裁剪算法描述在算法中,裁剪窗口、被裁剪多边形可以是任意多边形:凸的、凹的在算法中,裁剪窗口、被裁剪多边形可以是任意多边形:凸的、凹的(内角大于(内角大于180180o o)、甚至是带有内环的(子区),见下图。)、甚至是带有内环的(子区),见下图。裁剪窗口和被裁剪多边形处于完全对等的地位,这里我们称:裁剪窗口和被裁剪多边形处于完全对等的地位,这里我们称:1、被裁剪多边形为主多边形,记为、被裁剪多边形为主多边形,记为A;2、裁剪窗口为裁剪多边形,记为、裁剪窗口为裁剪多边形,记为B。主
27、多边形主多边形A和裁剪多边形和裁剪多边形B的边界将整个二维平面分成了四个区域:的边界将整个二维平面分成了四个区域:1、AB(交:属于(交:属于A且属于且属于B););2、AB(差:属于(差:属于A不属于不属于B););3、BA(差:属于(差:属于B不属于不属于A););4、AB(并:属于并:属于A或属于或属于B,取反;即:不属于,取反;即:不属于A且不属于且不属于B)。312009-2010-2:CG:SCUEC第31页,本讲稿共36页v内裁剪即通常意义上的裁剪,取图元位于窗口之内的部分,内裁剪即通常意义上的裁剪,取图元位于窗口之内的部分,结果为结果为ABAB。v外裁剪取图元位于窗口之外的部分
28、,结果为外裁剪取图元位于窗口之外的部分,结果为A AB B。观察右图不难发现裁剪结果区域的边界观察右图不难发现裁剪结果区域的边界由被裁剪多边形的部分边界和裁剪窗口由被裁剪多边形的部分边界和裁剪窗口的部分边界两部分构成,并且在交点处的部分边界两部分构成,并且在交点处边界发生交替,即由被裁剪多边形的边边界发生交替,即由被裁剪多边形的边界转至裁剪窗口的边界,或者反之。由界转至裁剪窗口的边界,或者反之。由于多边形构成一个封闭的区域,所以,于多边形构成一个封闭的区域,所以,如果被裁剪多边形和裁剪窗口有交点,如果被裁剪多边形和裁剪窗口有交点,则交点成对出现。这些交点分成两类:则交点成对出现。这些交点分成两
29、类:一类称入点,即被裁剪多边形由此点进入裁一类称入点,即被裁剪多边形由此点进入裁剪窗口,如图中剪窗口,如图中a a、c c、e e;一类称出点,即被裁剪多边形由此点离一类称出点,即被裁剪多边形由此点离开裁剪窗口,如图中开裁剪窗口,如图中b b、d d、f f。1.WA任意多边形裁剪算法描述322009-2010-2:CG:SCUEC第32页,本讲稿共36页2.WA任意多边形裁剪算法思想v假设被裁剪多边形和裁剪窗口的顶点序列都按顺时针方向排列。当两个假设被裁剪多边形和裁剪窗口的顶点序列都按顺时针方向排列。当两个多边形相交时,交点必然成对出现,其中一个是从被裁剪多边形进入裁多边形相交时,交点必然成
30、对出现,其中一个是从被裁剪多边形进入裁剪窗口的交点,称为剪窗口的交点,称为“入点入点”,另一个是从被裁剪多边形离开裁剪窗口,另一个是从被裁剪多边形离开裁剪窗口的交点,称为的交点,称为“出点出点”。v算法从被裁剪多边形的一个入点开始,碰到入点,沿着被裁剪算法从被裁剪多边形的一个入点开始,碰到入点,沿着被裁剪多边形按顺时针方向搜集顶点序列;而当遇到出点时,则沿着多边形按顺时针方向搜集顶点序列;而当遇到出点时,则沿着裁剪窗口按顺时针方向搜集顶点序列。裁剪窗口按顺时针方向搜集顶点序列。v按上述规则,如此交替地沿着两个多边形的边线行进,直到回到起按上述规则,如此交替地沿着两个多边形的边线行进,直到回到起
31、始点。这时,收集到的全部顶点序列就是裁剪所得的一个多边形。始点。这时,收集到的全部顶点序列就是裁剪所得的一个多边形。v由于可能存在分裂的多边形,因此算法要考虑:将搜集过的入点由于可能存在分裂的多边形,因此算法要考虑:将搜集过的入点的入点记号删去,以免重复跟踪。将所有的入点搜集完毕后算法的入点记号删去,以免重复跟踪。将所有的入点搜集完毕后算法结束。结束。332009-2010-2:CG:SCUEC第33页,本讲稿共36页3 WA任意多边形裁剪算法步骤1、顺时针输入被裁剪多边形顶点序列、顺时针输入被裁剪多边形顶点序列放入数组放入数组1中。中。2、顺时针输入裁剪窗口顶点序列、顺时针输入裁剪窗口顶点序
32、列放入数组放入数组2中。中。3、求出被裁剪多边形和裁剪窗口相交的所有交点,并给每个交点打上、求出被裁剪多边形和裁剪窗口相交的所有交点,并给每个交点打上“入入”、“出出”标记。标记。然后将交点按顺序插入序列然后将交点按顺序插入序列得到新的顶点序列得到新的顶点序列,并放入数组,并放入数组3中;中;同样也将交点按顺序插入序列同样也将交点按顺序插入序列得到新的顶点序列得到新的顶点序列,放入数组,放入数组4中;中;4、初始化输出数组、初始化输出数组Q,令数组,令数组Q为空。接着从数组为空。接着从数组3中寻找中寻找“入入”点。点。如果如果“入入”点没找到,程序结束。点没找到,程序结束。5、如果找到、如果找
33、到“入入”点,则将点,则将“入入”点放入点放入S中暂存。中暂存。6、将、将“入入”点录入到输出数组点录入到输出数组Q中。并从数组中。并从数组3中将该中将该“入入”点的点的“入入”点点标记删去。标记删去。7、沿数组、沿数组3顺序取顶点:顺序取顶点:如果顶点不是如果顶点不是“出点出点”,则将顶点录入到输出数组,则将顶点录入到输出数组Q中,流程转第中,流程转第7步。步。否则,流程转第否则,流程转第8步。步。8、沿数组、沿数组4顺序取顶点:顺序取顶点:如果顶点不是如果顶点不是“入点入点”,则将顶点录入到输出数组,则将顶点录入到输出数组Q中,流程转第中,流程转第8步。步。否则,流程转第否则,流程转第9步
34、。步。342009-2010-2:CG:SCUEC第34页,本讲稿共36页9、如果顶点不等于起始点、如果顶点不等于起始点S,流程转第,流程转第6步,继续跟踪数组步,继续跟踪数组3。否则,将数组否则,将数组Q输出;输出;流程转第流程转第4步,寻找可能存在的分裂多边形。步,寻找可能存在的分裂多边形。算法在第算法在第4步:满足步:满足“入入”点没找到的条件时,算法结束。点没找到的条件时,算法结束。算法的生成过程见下图所示。算法的生成过程见下图所示。3 WA任意多边形裁剪算法步骤352009-2010-2:CG:SCUEC第35页,本讲稿共36页4 WA任意多边形裁剪算法特点v裁剪窗口可以是矩形、任意凸多边形、任意凹多裁剪窗口可以是矩形、任意凸多边形、任意凹多边形。边形。v可实现被裁剪多边形相对裁剪窗口的内裁或外裁,可实现被裁剪多边形相对裁剪窗口的内裁或外裁,即保留窗口内的图形或保留窗口外的图形,因此即保留窗口内的图形或保留窗口外的图形,因此在三维消隐中可以用来处理物体表面间的相互遮在三维消隐中可以用来处理物体表面间的相互遮挡关系。挡关系。v裁剪思想新颖,方法简洁,裁剪一次完成,与裁裁剪思想新颖,方法简洁,裁剪一次完成,与裁剪窗口的边数无关。剪窗口的边数无关。362009-2010-2:CG:SCUEC第36页,本讲稿共36页