第5章 图形变换与裁剪3.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第5章 图形变换与裁剪3.ppt》由会员分享,可在线阅读,更多相关《第5章 图形变换与裁剪3.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5章章 图形变换与裁剪图形变换与裁剪3二维裁剪二维裁剪1 1 直线段裁剪直线段裁剪直线段裁剪直线段裁剪直接求交算法直接求交算法直接求交算法直接求交算法Cohen-SutherlandCohen-Sutherland算法算法算法算法 中点分割裁剪算法中点分割裁剪算法中点分割裁剪算法中点分割裁剪算法 梁友栋梁友栋梁友栋梁友栋-Basky-Basky算法算法算法算法2 2 多边形裁剪多边形裁剪多边形裁剪多边形裁剪 Sutlerland_Hodgman Sutlerland_Hodgman算法算法算法算法 Weiler-AthertonWeiler-Atherton算法算法算法算法 2 2直线段裁
2、剪直线段裁剪(1/15)裁剪的目的裁剪的目的n n判断图形元素是否在裁剪窗口之内并找出其位于内部的部分判断图形元素是否在裁剪窗口之内并找出其位于内部的部分判断图形元素是否在裁剪窗口之内并找出其位于内部的部分判断图形元素是否在裁剪窗口之内并找出其位于内部的部分裁剪处理的基础裁剪处理的基础n n图元关于窗口内外关系的判别图元关于窗口内外关系的判别图元关于窗口内外关系的判别图元关于窗口内外关系的判别n n图元与窗口的求交图元与窗口的求交图元与窗口的求交图元与窗口的求交裁剪、覆盖裁剪、覆盖3 3直线段裁剪直线段裁剪(2/15)裁剪窗口裁剪窗口n n矩形、圆形、一般多边形矩形、圆形、一般多边形矩形、圆形
3、、一般多边形矩形、圆形、一般多边形被裁剪对象被裁剪对象n n线段、多边形、曲线、字符线段、多边形、曲线、字符线段、多边形、曲线、字符线段、多边形、曲线、字符裁剪的策略裁剪的策略n n先裁剪,后变换先裁剪,后变换先裁剪,后变换先裁剪,后变换n n先变换,后裁剪先变换,后裁剪先变换,后裁剪先变换,后裁剪裁剪算法的核心问题裁剪算法的核心问题n n效率效率效率效率4 4直线段裁剪直线段裁剪(3/15)点裁剪点裁剪 n n点点点点(x,y)(x,y)在窗口内的充分必要条件是:在窗口内的充分必要条件是:在窗口内的充分必要条件是:在窗口内的充分必要条件是:问题:对于任何多边形窗口,如何判别?问题:对于任何多
4、边形窗口,如何判别?问题:对于任何多边形窗口,如何判别?问题:对于任何多边形窗口,如何判别?5 5直线段裁剪直线段裁剪(4/15)假定条件假定条件n n矩形裁剪窗口:矩形裁剪窗口:矩形裁剪窗口:矩形裁剪窗口:xmin,xmaxXymin,ymaxxmin,xmaxXymin,ymaxn n待裁剪线段:待裁剪线段:待裁剪线段:待裁剪线段:任何平面线段相对于凸多边形窗口进行裁剪后?任何平面线段相对于凸多边形窗口进行裁剪后?6 6直线段裁剪直线段裁剪(5/15)待裁剪线段和窗口的关系待裁剪线段和窗口的关系 n n完全落在窗口内完全落在窗口内完全落在窗口内完全落在窗口内n n完全落在窗口外完全落在窗口
5、外完全落在窗口外完全落在窗口外n n部分在内,部分在外部分在内,部分在外部分在内,部分在外部分在内,部分在外7 7直线段裁剪直线段裁剪(6/15)为提高效率,算法设计时应考虑:为提高效率,算法设计时应考虑:1.快速判断情形快速判断情形(1)(2);2.设法减少情形设法减少情形(3)求交次数和每次求交时所需的计算量求交次数和每次求交时所需的计算量8 8Cohen-Sutherland 算法算法(编码算法)算法步骤:算法步骤:第一步第一步 判别线段两端点是否都落在窗口内,如果是,判别线段两端点是否都落在窗口内,如果是,则线段完全可见;否则进入第二步;则线段完全可见;否则进入第二步;第二步第二步 判
6、别线段是否为显然不可见,如果是,则裁判别线段是否为显然不可见,如果是,则裁 剪结束;否则进行第三步剪结束;否则进行第三步 ;第三步第三步 求线段与窗口边延长线的交点,这个交点将求线段与窗口边延长线的交点,这个交点将 线段分为两段,其中一段显然不可见,丢弃。线段分为两段,其中一段显然不可见,丢弃。对余下的另一段重新进行第一步,第二步判断,对余下的另一段重新进行第一步,第二步判断,直至结束直至结束 裁剪过程是递归的。直线段裁剪直线段裁剪(7/15)9 9特点:特点:特点:特点:n n对显然不可见线段的快速判别对显然不可见线段的快速判别对显然不可见线段的快速判别对显然不可见线段的快速判别编码方法:编
7、码方法:编码方法:编码方法:n n由窗口四条边所在直线把二维平面分成由窗口四条边所在直线把二维平面分成由窗口四条边所在直线把二维平面分成由窗口四条边所在直线把二维平面分成9 9个区域,每个区域赋予一个四个区域,每个区域赋予一个四个区域,每个区域赋予一个四个区域,每个区域赋予一个四位编码,位编码,位编码,位编码,C Ct tC Cb bC Cr rC Cl l,上下右左;,上下右左;,上下右左;,上下右左;Cohen-Sutherland 算法算法直线段裁剪直线段裁剪(8/15)1010端点编码:端点编码:n n定义为它所在区域的编码定义为它所在区域的编码定义为它所在区域的编码定义为它所在区域的
8、编码结论:结论:n n当线段的两个端点的编码的当线段的两个端点的编码的当线段的两个端点的编码的当线段的两个端点的编码的逻辑逻辑逻辑逻辑“与与与与”非零非零非零非零时时时时 ,显然不可见,显然不可见,显然不可见,显然不可见 Cohen-Sutherland 算法算法直线段裁剪直线段裁剪(9/15)100000010010000001001001010101101010窗口bca1111求交测试顺序固定求交测试顺序固定求交测试顺序固定求交测试顺序固定(左上右下)左上右下)左上右下)左上右下)最坏情形,线段求交四次。最坏情形,线段求交四次。最坏情形,线段求交四次。最坏情形,线段求交四次。对于那些非完
9、全可见、又非完全不可见的线段,需要对于那些非完全可见、又非完全不可见的线段,需要求交求交,求交前,求交前先测试先测试与窗口哪条边所在直线有交?与窗口哪条边所在直线有交?(按序判断端点编码中各位的值按序判断端点编码中各位的值ClCtCrCb)Cohen-Sutherland 算法算法直线段裁剪直线段裁剪(10/15)1212 1)特点:用编码方法可快速判断线段特点:用编码方法可快速判断线段-完全可见和显然不可见。完全可见和显然不可见。2)特别适用二种场合:)特别适用二种场合:大窗口场合大窗口场合 窗口特别小的场合窗口特别小的场合 Cohen-Sutherland 算法的特点算法的特点直线段裁剪直
10、线段裁剪(11/15)1313中点分割法基本思想:基本思想:基本思想:基本思想:n n从从从从P0P0点出发找出距点出发找出距点出发找出距点出发找出距P0P0最近的可见点最近的可见点最近的可见点最近的可见点n n从从从从P1P1点出发找出距点出发找出距点出发找出距点出发找出距P1P1最近的可见点最近的可见点最近的可见点最近的可见点n n不断地在中点处将线段一分为二,对每段线段重复不断地在中点处将线段一分为二,对每段线段重复不断地在中点处将线段一分为二,对每段线段重复不断地在中点处将线段一分为二,对每段线段重复Cohen-Cohen-SutherlandSutherland裁剪算法的线段可见性测
11、试方法,直至找到每段线段与窗裁剪算法的线段可见性测试方法,直至找到每段线段与窗裁剪算法的线段可见性测试方法,直至找到每段线段与窗裁剪算法的线段可见性测试方法,直至找到每段线段与窗口边界线的交点或分割子段的长度充分小可视为一点为止口边界线的交点或分割子段的长度充分小可视为一点为止口边界线的交点或分割子段的长度充分小可视为一点为止口边界线的交点或分割子段的长度充分小可视为一点为止取中点取中点取中点取中点Pm=(P1+P2)/2Pm=(P1+P2)/2。P2P1 P2是离是离P1点最远的可见点点最远的可见点PmP1用用P1Pm代替代替P1P2P2P2用用PmP2代替代替P1P2PmP1直线段裁剪直线
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 图形变换与裁剪3 图形 变换 裁剪
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内