- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西北农林科技大学实验报告
学院名称:理学院 专业年级:信计061
姓 名: 袁金龙 学 号
课程名称: 计算机图形学 报告时间:2009年5月25 日
实验四 二维图形的裁剪
一、实验目的:
加 对直线段裁剪算法的理解,并能够掌握一种裁剪算法的编程方法;
二、实验内容:
1.基本理论
Cohen-sutherland算法对那些不与边框相交的线段进行裁剪时效
率较高,而对与窗口边界有交点的线段裁剪效率较低,而且很多时候,
被裁剪线段仅与窗口边界的延长线相交,而没有穿过窗口内部,
Cohen-sutherland算法计算了所有的交点后,结果却是完全舍弃,如图
线
2 中线A 。由于求交运算是裁剪算法中最耗时的部分,任何的算法都应
C
该尽量避免求交运算,Cohen-sutherland算法中,这样无效的交点计算
线 线
降低了算法的效率。针对这个问题有很多学者进行了改进,如文献
A B
[3][4],这些方法大都是进行了较多的区域划分和判断,比较复杂。本
文提出了一种简单易行的判断方法,可以快速的判断出线段是否完全
在窗口外,从而减少计算量。
图2 线段与裁剪窗口的位置关系
本文算法思想如下:
如果线段完全在窗口外,那么有两种可能:
(1)线段两端点的编码中有某一相同位置都为1,即两个端点编码
进行逻辑与操作的结果为真,如图2 中线C。
(2)裁剪窗口完全位于线段的同侧,如图2 中线A 。对于这种情况可
以如下判断:将裁剪窗口的四个端点代入直线方程,如果符号相同,说
明窗口在线段的同侧,即线段完全在窗口外;否则,说明线段和窗口有
交点。
改进的Cohen-sutherland算法可以描述如下:
首先对被裁剪线段两个端点进行编码。然后进行如下测试:
(1) 将两端点的区域码进行逻辑或运算,如果结果为0000,
说明线段完全在窗口内,可以完全保留。
(2) 将两端点的区域码进行逻辑与运算,如果结果为真(不是
0000),说明线段完全在窗口外,可以完全舍弃。
(3) 将窗口的四个顶点代入直线方程,如果符号相同,说明
线段完全在窗口外,可以完全舍弃。
对于上述情况均不满足的线段,需要进行求交运算,这些线段必
穿过窗口内部。通过添加这样一个判断条件将算法的求交次数大大减
少,从而提高了算法的效率。
2. 实验步骤
p (x , y ) p (x , y )
(1)、输入直线段的两个端点坐标 1 1 1 , 2 2 2 ,以及窗口的
边界坐标xl,xr,yb,yt ;
(2)、对p 1 ,p 2 进行编码,点p 1 的编码记作s1,p 2 的编码记作s2 ;
s1| s2 0 p p
(3)、若 (即直线段完全在窗口内部),对直线段 1 2 “简取”
之,转⑥ ;否则,若s1 s2 0 ,(即直线段完全在窗口外部),对直线段
“简弃”之,转⑦ ;当上述两条均不满足时,进行步骤④,即直线段与窗
口相交的情况。
(4)、确保p 1 在窗口外部。若p 1 在窗口内,则交换p
文档评论(0)