图形学第二章.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

中点分割裁剪算法基本思想:与前一种Cohen-Sutherland算法一样首先对线段端点进行编码,并把线段与窗口的关系分为三种情况:全在、完全不在和线段和窗口有交。对前两种情况,进行一样的处理。对于第三种情况,用中点分割的方法求出线段与窗口的交点。求线段与窗口的交点A、B分别为距p0、p1最近的可见点,Pm为p0p1中点从出发找最近可见点的方法先求出的中点若不是显然不可见的,并且在窗口中有可见部分,则距最近的可见点一定落在上,所以用代替;否则取代替再对新的求中点。重复上述过程,直到长度小于给定的控制常数为止,此时收敛于交点。从p1出发找最近可见点采用上面类似方法。梁友栋-Barskey算法梁-Barskey算法的几何含义参数化形式写出裁剪条件:可以统一表示为形式:pk=0且qk0,则线段完全在边界外,qk≥0,则该线段平行于裁剪边界并且在窗口内当pk≠0,当pk0,线段从裁剪边界延长线的外部延伸到内部。当pk0,线段从裁剪边界延长线的内部延伸到外部。对于每条直线,可以计算出参数u1和u2,它们定义了在裁剪矩形内的线段部分u1的值由线段从外到内遇到的矩形边界所决定(p0)。对这些边界计算rk=qk/pk。u1取0和各个rk值之中的最大值。u2的值由线段从内到外遇到的矩形边界所决定(p0)。对这些边界计算rk=qk/pk。u2取1和各个rk值之中的最小值。如果u1u2,则线段完全落在裁剪窗口之外,被舍弃。否则裁剪线段由参数u的两个值u1,u2计算出来。voidLB_LineClip(x1,y1,x2,y2,XL,XR,YB,YT)floatx1,y1,x2,y2,XL,XR,YB,YT;{ floatdx,dy,u1,u2; tl=0;tu=1; dx=x2-x1;dy=y2-y1;if(ClipT(-dx,x1-Xl,u1,u2)if(ClipT(dx,XR-x1,u1,u2)if(ClipT(-dy,y1-YB,u1,u2)if(ClipT(dy,YT-y1,u1,u2){ displayline(x1+u1*dx,y1+u1*dy,x1+u2*dx,y1+u2*dy) return; }}boolClipT(p,q,u1,u2)floatp,q,*u1,*u2;{floatr;if(p0){ r=q/p; if(r*u2)returnFALSE; elseif(r*u1) { *u1=r; returnTRUE; }}。。。//下页elseif(p0){ r=p/q; if(r*u1)returnFALSE; elseif(r*u2){ *u2=r;returnTRUE;}}elseif(q0)returnFALSE;returnTRUE;}2.5.2多边形裁剪基本思想是一次用窗口的一条边裁剪多边形。考虑窗口的一条边以及延长线构成的裁剪线该线把平面分成两个部分:可见一侧;不可见一侧多边形的各条边的两端点S、P。它们与裁剪线的位置关系只有四种对于情况(1)仅输出顶点P;情况(2)输出0个顶点;情况(3)输出线段SP与裁剪线的交点I;情况(4)输出线段SP与裁剪线的交点I和终点P上述算法仅用一条裁剪边对多边形进行裁剪,得到一个顶点序列,作为下一条裁剪边处理过程的输入。对于每一条裁剪边,算法框图同上,只是判断点在窗口哪一侧以及求线段SP与裁剪边的交点算法应随之改变。逐次多边形裁剪算法框图 处理线段SP过程子框图2.5.3字符裁剪串精度:将包围字串的外接矩形对窗口作裁剪字符精度:将包围字的外接矩形对窗口作裁剪以及笔画\象素精度:将笔划分解成直线段对窗口作裁剪待裁剪字符串 串精度裁剪 字符精度裁剪象素精度裁剪用离散量表示连续量引起的失真现象称之为走样(aliasing)用于减少或消除这种效果的技术称为反走样(antialiasing)2.6反走样2.6.1提高分辨率把显示器分辨率提高一倍,直线经过两倍的象素,锯齿也增加一倍,但同时每个阶梯的宽度也减小了一倍,所以显示出的直线段看起来就平直光滑了一些。增加分辨率虽然简单

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档