版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、韩志刚,2012.5,计 算 机 图 形 学 -Computer Graphics,河 南 大 学 环 境 与 规 划 学 院,Email:,第五章 图形运算,第一节 二维图形交点计算,第二节 二维图形裁剪,第三节 三维图形裁剪,第四节 多边形布尔运算,第五章 图形运算,第一节 二维图形交点计算,第二节 二维图形裁剪,第三节 三维图形裁剪,第四节 多边形布尔运算,第一节 二维图形交点计算,在进行二维图形以及三维图形运算时,图元求交特别是线段之间的求交是一个基础性运算。 以图形裁剪为例,必须要解决的一个问题就是裁剪多边形的边界与被裁剪图形元素之间的交点计算问题。,第一节 二维图形交点计算,一、两
2、直线段之间的交点,二、直线段和圆弧之间的交点,三、两圆弧之间的交点,四、给定一组直线段的交点计算,一、两直线段之间的交点,二、直线段和圆弧之间的交点,三、两圆弧之间的交点,四、给定一组直线段的交点计算,第一节 二维图形交点计算,一、两直线段之间的交点,设有两线段S1,S2。S1的端点分别为P1(x1,y1),P2(x2,y2), S2的端点分别为P3(x3,y3), P4(x4,y4).则两直线段的参数方程为:,无解,此时意味两线段平行或重合; 有唯一解,但不一定是有效解,有效解应该是交点必须位于两直线段上。此时应满足如下条件: 0u1.0 0v1.0,一、两直线段之间的交点,二、直线段和圆弧
3、之间的交点,三、两圆弧之间的交点,四、给定一组直线段的交点计算,第一节 二维图形交点计算,二、直线段和圆弧之间的交点,二、直线段和圆弧之间的交点,讨论(对于左图而言): 无解,第一种情况; 一解,第三种情况; 两解,第二种情况。 当有解时,还须进一步判断:0t1.0, se,1,2,3,1,2,3,4,一、两直线段之间的交点,二、直线段和圆弧之间的交点,三、两圆弧之间的交点,四、给定一组直线段的交点计算,第一节 二维图形交点计算,设有两段圆弧A,B。A圆弧的圆心坐标(xa,ya),半径为ra, B圆弧的圆心坐标(xb,yb),半径为rb。则有如下方程: 如果两圆相交,则应有:,三、两圆弧之间的
4、交点,三、两圆弧之间的交点,讨论: 两圆之间的关系存在以上三种。 而对圆弧来说,有效解应在圆弧的定义域内: 即:,一、两直线段之间的交点,二、直线段和圆弧之间的交点,三、两圆弧之间的交点,四、给定一组直线段的交点计算,第一节 二维图形交点计算,四、给定一组直线段的交点计算,给定一组直线段,其求交计算工作量要大体上与交点个数成正比,即只对有可能相交的两线段计算交点,对不可能相交的线段不计算交点,使算法有更好的效率。 假设两条直线段S1(p1,p2)S2(q1,q2),如果P1,P2分别位于直线段S2的两侧,并且q1,q2也分别位于S1的两侧,则S1与S2相交,否则,不相交。,四、给定一组直线段的
5、交点计算,对于直线:ax+by+c=0 它把平面分为两个部分:正半区与负半区;某点位于哪个半平面的判断方法: 令f(x,y)=ax+by+c,计算f(x,y)的值 (也可先判断两线段的外接矩形有交点,若有可继续判断,若无则不必判断, 可减少计算量) 因此对于直线段S2,只要f(p1)*f(p2)0并且对于直线 段S1存在f(q1)*f(q2)0,即可判定直线段S1与S2有交点。,第五章 图形运算,第一节 二维图形交点计算,第二节 二维图形裁剪,第三节 三维图形裁剪,第四节 多边形布尔运算,第二节 二维图形裁剪,一、二维图形裁剪概述,二、点的裁剪,三、直线段裁剪,四、多边形裁剪,五、其它裁剪,第
6、二节 二维图形裁剪,一、二维图形裁剪概述,二、点的裁剪,三、直线段裁剪,四、多边形裁剪,五、其它裁剪,一、二维图形裁剪概述,裁剪:确定图形中哪些部分落在显示区之内,哪些落在显示区之外,以便只显示落在显示区内的那部分图形。这个选择过程称为裁剪。图形裁剪直接影响图形系统的效率。,裁剪区域:矩形、任意图形,裁剪对象:点、线段、多边形、二维形体,裁剪的目的 判断图形元素是否落在裁剪区域之内,并找出其位于内部的部分 裁剪的处理基础 图元关于裁剪区域内外关系的判别 图元与裁剪区域的求交 裁剪的内容: 图形在裁剪区域内的判断; 求出图形与裁剪区域边界的交点; 显示裁剪区域内的图形。,一、二维图形裁剪概述,第
7、一节 二维图形裁剪,一、二维图形裁剪概述,二、点的裁剪,三、直线段裁剪,四、多边形裁剪,五、其它裁剪,二、点的裁剪,图形裁剪中最基本的问题。 假设窗口的左下角坐标为(xL,yB),右上角坐标为(xR,yT),对于给定点P(x,y),则P点在窗口内的条件是要满足下列不等式:xL=x=xR并且yB=y=yT否则,P点就在窗口外。 问题:对于任意多边形窗口,如何判别?(过该点作射线求与图形的交点),第一节 二维图形裁剪,一、二维图形裁剪概述,二、点的裁剪,三、直线段裁剪,四、多边形裁剪,五、其它裁剪,裁剪线段与窗口的关系:(1)线段完全可见;(2)显然不可见;(3)其它 提高裁剪效率:快速判断情形(
8、1)(2),对于情形(3),设法减少求交次数和每次求交时所需的计算量。,三、直线段裁剪,三、直线段裁剪,(一)直接求交算法,(二)Cohen-Sutherland算法,(三)中点分割算法,(四)梁友栋Barsky算法,(五)Cyrus-Beck算法,(一)直接求交算法,(二)Cohen-Sutherland算法,(三)中点分割算法,(四)梁友栋Barsky算法,(五)Cyrus-Beck算法,三、直线段裁剪,(一)直接求交算法,初始条件:裁剪区域是矩形区域(窗口),裁剪对象是直线段(P0P1)。 基本思路:直线与窗口边都写成参数形式,求参数值直接求交。,P0在窗口内部?,(一)直接求交算法,P
9、1在窗口内部?,P0P1显然不可见?,P0P1与窗口有交?,求交点I0、I1,I0I1即位可见部分,P1在窗口内部?,P=P0 P0=P1 P1=P,求交点I,P0I即为可见部分,P0P1完全可见,EXIT,P0P1完全不可见,P0P1完全不可见,Y,Y,Y,Y,Y,N,N,N,N,N,三、直线段裁剪,(一)直接求交算法,(二) Cohen-Sutherland算法,(三) 中点分割算法,(四) 梁友栋Barsky算法,(五) Cyrus-Beck算法,(二) Cohen-Sutherland算法,基本条件:裁剪区域是矩形区域(窗口),裁剪对象是直线段(P1P2)。 基本思想: 对于每条线段P
10、1P2分为三种情况处理: (1)若P1P2完全在窗口内,则显示该线段P1P2。 (2)若P1P2明显在窗口外,则丢弃该线段。 (3)若线段不满足(1)或(2)的条件,则在交点处把线段分为两段。其中一段完全在窗口外,可弃之。然后对另一段重复上述处理。,为快速判断,采用如下编码方法:,将窗口边线两边延长,得到九个区域,每一个区域都用一个四位二进制数标识,直线的端点都按其所处区域赋予相应的区域码,用来标识出端点相对于裁剪矩形边界的位置。,(二) Cohen-Sutherland算法,将区域码的各位从左到右编号,则坐标区域与各位的关系为: 上 下 右 左 X X X X 在x=xl左侧的区域,编码的第
11、四位是1; 在x=xr右侧的区域,编码的第三位是1; 在y=yb下侧的区域,编码的第二位是1; 在y=yt上侧的区域,编码的第一位是1 。,(二) Cohen-Sutherland算法,某一位赋值为1,代表端点落在相应位置,否则该位为0。 若端点在裁剪矩形内,区域码为0000。如果端点落在矩形的左下角,则区域码为0101。,一旦给定所有的线段端点的区域码,就可以快速判断哪条直线完全在裁剪窗口内,哪条直线完全在窗口外。判断规律如下: 若code1=0,且code2=0,则P1P2完全在窗口内“取” 若code1double xl, xr, yt, yb; (事先给出窗口的位置,四个数值是已知的)
12、,(二) Cohen-Sutherland算法,void makecode(double x, y; int c) c=0; if (xxr) c=2; /0010 if (yyt) c=c+8; /1000 ,(二) Cohen-Sutherland算法,void Cohen_Sutherland(double x0, y0, x2, y2) int c, c1, c2; double x, y; makecode(x0, y0,c1); makecode(x2, y2, c2); while(c1!=0 | c2!=0) if (c1 /显示可见线段,本算法的优点在于简单,易于实现。它可以
13、简单的描述为将直线在窗口外侧的部分删去,按左,右,下,上的顺序依次进行,处理之后,剩余部分就是可见的了。在这个算法中求交点是很重要的,它决定了算法的速度。另外,本算法对于其它形状的窗口并不适用。 特点:用编码方法可快速判断线段的完全可见和显然不可见。,(二) Cohen-Sutherland算法,例子:考虑如下图所示的裁剪任务,用C-S裁剪算法完成裁剪过程。p1(-1/2,-1/2),p2(1/2,0);p3(7/6,-1/2),p4(3/2,1/2);p5(-3/2,1/6),p6(1/2,3/2);p7(-1/2,0), p8(3/2,1).,(二) Cohen-Sutherland算法,
14、void makecode(double x, y; int c) c=0; if (xxr) c=2; if (yyt) c=c+8;,三、直线段裁剪,(一) 直接求交算法,(二) Cohen-Sutherland算法,(三) 中点分割算法,(四) 梁友栋Barsky算法,(五) Cyrus-Beck算法,(三) 中点分割算法,基本思想:从P0点出发找出离P0最近的可见点,和从P1点出发找出离P1最近的可见点。这两个可见点的连线就是原线段的可见部分。 与Cohen-Sutherland算法一样,首先对线段端点进行编码,并把线段与窗口的关系分为三种情况,对前两种情况,进行一样的处理;对于第三种
15、情况,用中点分割的方法求出线段与窗口的交点。A、B分别为距P0、P1最近的可见点,Pm为P0P1中点。,从P0出发找距离P0最近可见点采用中点分割方法 先求出P0P1的中点Pm,若P0Pm不是显然不可见的,并且P0P1在窗口中有可见部分,则距P0最近的可见点一定落在P0Pm上,所以用P0Pm代替P0P1;否则取PmP1代替P0P1。再对新的P0P1求中点Pm。重复上述过程,直到PmP1长度小于给定的控制常数为止,此时Pm收敛于交点。 从P1出发找距离P1最近可见点采用上面类似方法。,(三) 中点分割算法,(三) 中点分割算法,对分辩率为2N*2N的显示器,上述二分过程至多进行N次。 主要过程只
16、用到加法和除法运算,适合硬件实现,它可以用左右移位来代替乘除法,这样就大大加快了速度。,(三) 中点分割算法,例子,(三) 中点分割算法,三、直线段裁剪,(一) 直接求交算法,(二) Cohen-Sutherland算法,(三) 中点分割算法,(四) 梁友栋Barsky算法,(五) Cyrus-Beck算法,(四)梁友栋Barsky算法,设要裁剪的线段是P0P1。P0P1和窗口边界交于A,B,C,D四点,见图。算法的基本思想是从A,B和P0三点中找出最靠近P1的点,图中要找的点是P0。从C,D和P1中找出最靠近P0的点。图中要找的点是C点。那么P0C就是P0P1线段上的可见部分。,给定直线段P
17、0P1的参数方程:,给定裁剪窗口的四条边为XL,XR,YB,YT,则在窗口内部的点满足条件:,(四)梁友栋Barsky算法,可得:,XL x0+tx XR YBy0+tY YT,写成如下形式:,-tx x0 XL tx XR- x0 -tY y0 YB tY YT- y0,(四)梁友栋Barsky算法,-tx x0 XL tx XR- x0 -tY y0 YB tY YT- y0 写成统一形式:ti di qi,i=1,2,3,4 其中:d1=x,d2=x,d3=y,d4=y q1= x0 XL,q2= XR- x0,q3= y0 YB ,q4=YT- y0 取“=”时求得的t对应的是直线与窗
18、口边界的交点 即tiqi/di 1、2、3、4分别对应左、右、下、上边界 ti=0和1时分别对应直线的起点和终点,(四)梁友栋Barsky算法,d1=x,d2=x,d3=y,d4=y q1= x0 XL,q2= XR- x0,q3= y0 YB ,q4=YT- y0 tiqi/di 根据di的取值情况,决定参数ti的值: (1)di0时,表示线段不与坐标轴平行 di0时,tone=max(0,ti|di0,ti|di0) di0时,ttwo=min(1,ti|di0,ti|di0) 若tonettwo,则可根据直线段的参数方程求出两个交点; 若tonettwo,则直线段在裁剪区域外。,(四)梁
19、友栋Barsky算法,(四) 梁友栋Barsky算法,d1=x,d2=x,d3=y,d4=y 左,右,下,上 d1,d40,(2)当di0时,表示线段与坐标轴平行 若qi0 时, 跳过该边,进行下一边的判断 如图中的EF就是这种情况,它使d1=0,q10和d2=0,q20。这时由于EF和x=xL及x=xR平行,故不必去求出EF和x=xL及x=xR的交点,而让EF和y=yT及y=yB的交点决定直线段上的可见部分。,(四) 梁友栋Barsky算法,给出如下直线段与窗口的L-Barsky裁剪过程。,(四) 、梁友栋Barsky算法,三、直线段裁剪,(一) 直接求交算法,(二) Cohen-Suthe
20、rland算法,(三) 中点分割算法,(四) 梁友栋Barsky算法,(五) Cyrus-Beck算法,考虑凸多边形区域R和直线段P1P2 P(t)=(P2-P1)*t+P1 设A是区域R的边界上 一点,N是区域边界在 A点的内法矢量,(五) Cyrus-Beck算法,则对于线段P1P2上靠近P1一端任一点P(t) N (P(t)-A)外侧 N (P(t)-A)0-内侧 N (P(t)-A)=0-边界 或其延长线上 凸多边形的性质:,(五) Cyrus-Beck算法,点P(t)在凸多边形内的充要条件是,对于凸多边形边界上任意一点A和该点处内法向量N,都有N(P(t)-A)0,由P(t)=(P2
21、-P1)*t+P1 , N(P(t)-A)=0可得: N(P1-A)+ (P2-P1) t)0 假设多边形有k条边,则每条边都有类似的情况,有Ni (P1-Ai)+ Ni (P2-P1) t=0 , i=0,k, 则: 可求出每一条边与被裁剪线段的交点参数t。,(五) Cyrus-Beck算法,考虑分母为0的情况: Ni(P2-P1)=0时,被裁剪线段平行于对应边。 此时判断Ni(P1-Ai) 若Ni(P1-Ai)0P1 P2在多边形内侧继续其它边的判断,(五) Cyrus-Beck算法,对于t值的选择:首先,要符合0t1;其次,对于凸窗口来说,每一个线段与其至多有两个交点,即有两个相应的t值
22、。所以我们可以把计算出的t值分成两组:一组为下限组,是分布在线段起点一侧的;一组为上限组,是分布在线段终点一侧的。这样,只要找出下限组中的最大值及上限组中的最小值,就可确定可见线段了。 分组的依据是: 如果Ni(P2-P1)0,则计算出的值属于上限组,终点一侧 如果Ni(P2-P1)0,则计算出的值属于下限组,起点一侧,(五) Cyrus-Beck算法,因此,线段可见的交点参数: tl=max0,maxti:Ni(P2-P1)0 tu=min1,minti:Ni(P2-P1)0 若 tl=tu, tl,tu是可见线段的交点参数区间,否则,线段不可见。,(五) Cyrus-Beck算法,该算法比
23、Cohen-Sutherland算法适用的范围更广一些,它可以对任何凸多边形适用,但对于凹多边形就失效了。 需要判定多边形的凸凹性。叉积判断法:,如果各叉积一部分为正,一部分为负,则多边形为凹多边形; 如果所有叉积符号一致,则多边形为凸多边形。,(五) Cyrus-Beck算法,可进行凹多边形裁剪窗口情况下的裁剪,步骤为: 对输入的多边形进行分割,变换成若干个凸多边形。 用每一个多边形使用Cyrus-Beck算法对所有直线进行裁剪。 将每个多边形的裁剪结果合成。 内法矢量:Nvivi+20,(五) Cyrus-Beck算法,例子:给定裁剪多边形顶点v1(2,0),v2(0,2),v3(3,6)
24、,v4(7,4)和v5(4,0)。被裁剪线段为P1(-2,1)到P2(7,3)。,(五) Cyrus-Beck算法,第一节 二维图形裁剪,(一) 二维图形裁剪概述,(二)点的裁剪,(三) 直线段裁剪,(四) 多边形裁剪,(五) 其它裁剪,(四) 多边形裁剪,错觉:直线段裁剪的组合?,采用直线段裁剪,结果是边界不再封闭,需要用裁剪窗口边界的恰当部分来封闭它,如何确定其边界?不能采用这种方法。,(一) Sutherland-Hodgman算法,(二) Weiler-Atherton算法,(四) 多边形裁剪,(一) Sutherland-Hodgman算法,(二) Weiler-Atherton算法
25、,(四) 多边形裁剪,(一) Sutherland-Hodgman算法,基本思想:,通过对单一边或面的裁剪来实现多边形的裁剪。即在算法中,裁剪窗口的每一边将逐次对原多边形和每次裁剪所生成的多边形进行裁剪。又称逐次多边形裁剪。,(一) Sutherland-Hodgman算法,算法的每一次输出(包括中间结果)都是一个多边形的顶点表, 且所有顶点均位于相应窗口裁剪边的可见一侧。由于多边形的每一条边需要与裁剪边分别进行比较,因此只需要讨论单条边和单个裁剪边之间可能的位置关系。假设S,P为多边形的两个相邻顶点,且S为该边的起点,P为该边的终点,则边SP与裁剪边或面之间只有4种可能的关系。,(一) Su
26、therland-Hodgman算法,由上可见,每一次将多边形的边与裁剪边或面比较后,输出一个或两个顶点,也可能无输出点。如果SP边完全可见,则输出P点,不必输出起点S,因为顶点是按顺序处理的,S是作为前一边的终点输出的。如果SP边完全不可见,则无输出。如果SP边部分可见,则SP边可能进入或离开裁剪边或面的可见一侧。 如果SP边离开裁剪边或面的可见一侧,则输出SP与裁剪边交点。如果SP边进入裁剪边或面的可见一侧,则输出两点,一个为SP与裁剪边或面的交点,一个是P点。,(一) Sutherland-Hodgman算法,要进行点位判断和直线段求交。 点位判断:直接判断 直线段求交:采用参数方程求交
27、,无解,此时意味两线段平行或重合; 有唯一解,但不一定是有效解,有效解应该是交点必 须位于两直线段上。此时应满足如下条件:0u1.0 0v1.0,while 对于每一个窗口边 dobegin if P1在窗口边的可见一侧 then 输出P1 for i=1 到 n do begin if Pi在窗口边的可见一侧 then if Pi+1在窗口边的可见一侧 then 输出Pi+1 else 计算交点并输出交点 else if Pi+1在窗口边的可见一侧,then 计算交点 并输出交点,同时输出Pi+1 endend end,(一) Sutherland-Hodgman算法,(一) Sutherl
28、and-Hodgman算法,可见侧到不可见侧:记录交点; 不可见侧到可见侧: 记录交点和终点,对凸多边形应用本算法可以得到正确的结果,但是对凹多边形的裁剪将如图所示显示出一条多余的直线。这种情况在裁剪后的多边形有两个或者多个分离部分的时候出现。因为只有一个输出顶点表,所以表中最后一个顶点总是连着第一个顶点。 解决这个问题,可以把凹多边形分割成若干个凸多边形,然后分别处理各个凸多边形。,(一) Sutherland-Hodgman算法,(一) Sutherland-Hodgman算法,(二) Weiler-Atherton算法,(四) 多边形裁剪,(二) Weiler-Atherton算法,主多
29、边形:用来被裁剪的多边形,可以是凸的、凹的、或是有孔的; 裁剪多边形:用来裁剪主多边形的多边形,也可以是凸的、凹的、或是有孔的; 主多边形的顶点表:用来定义主多边形; 裁剪多边形的顶点表:用来定义裁剪多边形; 进点(入点):主多边形进入裁剪多边形时的交点 进点(入点)表:进点(入点)构成的链表; 出点:从裁剪多边形进入主多边形时的交点; 出点表:出点构成的链表。,算法步骤: (1)用循环链表建立主多边形的顶点表SP和裁剪多边形的顶点表CP。 (2)求出主多边形和裁剪多边形的交点。将交点加入到SP和CP的顶点表中,对交点注以标记,对同一交点在SP表和CP表中建立双向指针。 (3) 建立两个空表,
30、一个表用于记录主多边形位于裁剪多边形内部的边界(内表),另一个表用于记录位于裁剪多边形外部的边界(外表)。因此,裁剪多边形的边界将复制并记入主多边形的内表和外表中。 (4)建立两类交点表。一个为进点表,它只包含主多边形边进入裁剪多边形内部时的交点;另一个为出点表,它包含从属多边形离开裁剪边形内部时的交点。沿着多边形边界,两类交点将交替出现。因此对于每一对交点只需进行一次类型判别就够了。,(二) Weiler-Atherton算法,(二) Weiler-Atherton算法,(5)裁剪过程具体实现,分两种情况处理。 1)位于裁剪多边形内的多边形搜索。 从进点表中取出一个交点,若交点表为空,则处理
31、结束。 跟踪SP表,直到发现下一个交点,复制这一段SP表并记 入内表中。 根据交点处所设指针,转到CP表中的相应位置。 跟踪CP表,直到发现下一交点,复制这段CP表并记入内 表中。 再转回SP表。 重复上述过程,直到回到起始交点处。至此所得的位于 裁剪多边形内的新多边形已经封闭。,(二) Weiler-Atherton算法,2)位于裁剪多边形外侧的多边形搜索。 从出点表中取出一个交点,若交点表中为空,则处理结束。 跟踪SP表,直到发现下一个交点,复制这一段SP表并记入外表中。 根据交点处所设指针,转到CP表中的相应位置。 反向跟踪CP表,直到发现下一交点,复制这段CP表并记入外表中。 再转回S
32、P表。 重复上述过程,直到回到起始交点处。至此所得的位于裁剪多边形外的新多边形已经封闭。,(二) Weiler-Atherton算法,(二) Weiler-Atherton算法,(二) Weiler-Atherton算法,(二) Weiler-Atherton算法,S1,I3,I4,S2,S3,S4,I1,I2,S5,S6,S7,I5,S8,I6,S5,C1,C2,C3,S1,I4,I5,C4,I6,I1,C1,C5,I2,C6,I3,C7,C8,C5,S3,S1,I3,I4,S2,S3,S4,I1,I2,S5,S6,S7,I5,S8,I6,S5,C1,C2,C3,S1,I4,I5,C4,I6
33、,I1,C1,C5,I2,C6,I3,C7,C8,C5,(二) Weiler-Atherton算法,保证Weiler-Atherton算法的工作可靠性,要先判定主多边形和裁剪多边形有无交点以及它们的位置关系。 左图若主多边形的一个顶点或边位于裁剪多边形边界上时,则不能看作交点。 右图中,应该考虑主多边形和裁剪多边形之间交点的正确位置,以免形成退化的多边形。 标记为“X”的点应看作交点,而标记为圆点的点则不是交点。,第一节 二维图形裁剪,(一) 二维图形裁剪概述,(二) 点的裁剪,(三) 直线段裁剪,(四) 多边形裁剪,(五) 其它裁剪,(五) 其它裁剪,曲线边界对象的裁剪 曲线边界(如圆域边界
34、)生成时已离散为折线,因此可采用多边形裁剪的方法 内裁剪与外裁剪 保留落在裁剪区域外的图形部分、去掉裁剪区域内的所有图形,这种裁剪过程称为外裁剪,也称空白裁剪。保留落在裁剪区域内的图形部分、去掉裁剪区域外的所有图形,这种裁剪过程称为内裁剪。,文字裁剪 根据裁剪精度的不同,文字裁剪的策略包括几种: 串精度裁剪 指在显示文本字符串时,若字符串与窗口相交,则该字符串被整个裁剪。一般字符串裁剪采取字符串包围盒来判断字符串与窗口的关系。,五、其它裁剪,文字裁剪 字符精度裁剪 指在显示文本时,把窗口以外的字符予以裁剪,同时与窗口相交的字符也予以裁剪。 笔划、象素精度裁剪 笔画裁剪是指在显示文本时,把窗口以外的字符予以裁剪,并且对与窗口相交的字符,也把其在窗口以外的部分予以裁剪。若是矢量字符,可以按直线的裁剪方法来裁剪与窗口相交的字符。若是点阵字符,则可按点的的裁剪方法来裁剪与窗口相交的字符。,五、其它裁剪,char,ch,Stroke,第五章 图形运算,第一节 二维图形交点计算,第二节 二维图形裁剪,第三节 三维图形裁剪,第四节 多边形布尔运算,第三节 三维图形裁剪,一、三维裁剪体的形状,二、三维Cohen-Suthenland裁剪,第三节 三维图形裁剪,一、三维裁剪体的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校网络安全防护开展、落实情况说明
- 线下速写活动策划方案(3篇)
- 活动策划摆场方案(3篇)
- 露营烤全羊活动策划方案(3篇)
- 宠物染色活动方案策划(3篇)
- 大门架施工方案(3篇)
- 铁路工程师运营效率绩效评定表
- 2026校招:陕西会展中心集团面试题及答案
- 技术支持服务流程单诊断与问题解决工具
- 环保设备技术员工作成果绩效考核表
- 部编人教版(2021年春修订版)6年级下册语文全册课件
- 移动应用隐私保护承诺书
- 《土地潜力评价》课件
- 模块三 WPS Office电子表格
- 消防设施安全检查表
- 数字化系列研究之财务数智化篇:大型集团企业财务管理的数智化
- 加油站防恐安全培训
- 酒店线上推广方案
- Micro Shield程序初级应用指南
- 劳动与社会保障法详解
- GB/T 31734-2015竹醋液
评论
0/150
提交评论