- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
直线裁剪算法研究
摘要:直线裁剪是计算机图形学中的一个重要技术,在对常见的直经线裁剪的算法分析的基础上,针对Cohen-Sutherland算法和Liang-Barsky算法进行了分析研究。并对两种算法了计算直线与窗口边界的交点时,进行了有效有比较。
关键词:裁剪;算法;Cohen-Sutherland;Liang-Barsky;
1 引言
直线是图形系统中使用最多的一个基本元素。所以对于直线段的裁剪算法是被研究最深入的一类算法,目前在矩形窗口的直线裁剪算法中,出现了许多有效的算法。其中比较著名的有:Cohen-Sutherland算法、中点分割算法、Liang-Barsky算法、Sobkow-Pospisil-Yang算法,及Nicholl-Lee-Ncholl算法等。
2 直线裁剪的基本原理
图1所示的为直线与窗口边界之间可能出现的几种关系。可以通过检查直线的两个端点是否在窗口之内确定如何对此直线裁剪。如果一直线的两个端点均在窗口边界之内(如图1中P5到P6的直线),则此直线应保留。如果一条直线的一个端点在窗口外(如P9)另一个点在窗口内(如P10),则应从直线与边界的交点(P9)处裁剪掉边界之外的线段。如果直线的两个端点均在边界外,则可分为两种情况:一种情况是该直线全部在窗口之外;另一种情况是直线穿过两个窗口边界。图中从P3到P4的直线属于前一种情况,应全部裁剪掉;从P7到P8的直线属于后一种情况,应保留P7到P8的线段,其余部分均裁剪掉。
图1直线相对干窗口边界的栽剪
直线裁剪算法应首先确定哪些直线全部保留或全部裁剪,剩下的即为部分裁剪的直线。对于部分裁剪的直线则首先要求出这些直线与窗口边界的交点,把从交点开始在边界外的部分裁剪掉。一个复杂的画面中可能包含有几千条直线,为了提高算法效率,加快裁剪速度,应当采用计算量较小的算法求直线与窗口边界的交点。
3 cohen-sutherland直线裁剪算法
Cohen-Sutherland算法的大意是:对于每条线段P1P2,分为3种情况处理。
①若P1P2完全在窗口内,则显示该线段P1P2,简称“取”之。
②若P1P2明显在窗口外,则丢弃该线段,简称“弃”之。
③若线段既不满足“取”的条件,也不满足“弃”的条件,则把线段分为两段。其中一段完全在窗口外,可弃之。然后对另一段重复上述处理。
1.区域码及其建立
Cohen-Sutherland直线裁剪算法的核心是把所有直线的端点均分配一个表示其相对位置的4位二进制代码。此代码称为区域码。区域码按照端点与窗口边界的相对位置编码,即区域码的4位分别代表端点位于窗口的上、下、左、右。区域码从右到左的各位所代表的坐标区如下所示:
位 4 3 2 1
坐标区 上 下 右 左
上述各位中某位为1,则表示点位于此坐标区。窗口周围各坐标区的区域码如图2所示。由图2可见,位于窗中内的点,其区域码应为0000,位于窗口左下方的点,其区域码应为0101,其余类推。
区域码各位的值可以通过对端点坐标(x,y)与窗口边界的比较求得。如果xxwmin,则区域码的第一位为1,其余各位的确定与此相似。现在的计算机语言都可以进行位操作,因此,可以通过以下步骤建立区域码:
①计算出端点坐标与窗口边界的差。
②按计算出的各个差的符号把区域码的相应位置为0或1,即
区域码的第一位置为(x-xwmin)的符号位;
区域码的第二位置为(xwmin-x)的符号位;
图2 区域码区域码的第三位置为(y-ywmin)的符号位;
图2 区域码
区域码的第四位置为(ywmin-y)的符号位。
2.区域码裁剪算法
对所有直线的端点都建立了区域码之后,就可按区域码判断直线在窗口之内或窗口之外。这可分为如下几种情况:
①若一直线的两个端点的区域码均为0000则此直线在窗口边界之内,应子保留。
②若一直线的两个端点的区域码的同一位同时为1,则此直线全部在窗口边界之外,应子裁剪。例如,若一直线的一个端点的区域码为1001,另一个端点的区域码为0101,则此两端点的区域码的第一位均为1,说明此两端点均在窗口边界之左,因此,直线在窗口边界之外,应予裁剪。可用将直线两个端点的区域码进行与操作的方法,判断直线是否在窗口之外,若与操作的结果为0000则两端点的区域码任何位均不同时为1,此直线不一定被裁剪。
③以上两种情况之外的直线,有可能穿过窗口,也有可能不穿过窗口,如图87所示。图中所示的两条直线都不符合情况②的要求,但一条直线(P1P2)穿过窗口,另一直线(P3P4)不守过窗口。对这类直线可以进行如下处理:取窗口外的一个端点与窗口边界比较以确定可排除直线的哪一部分,然后,把直线剩下的部分与其他边界比较,这样一直
您可能关注的文档
- 新概念英语第一册 51~65课测试题.doc
- 新交互英语视听说2答案截图版.doc
- 新课标初中课外古诗词训练练习题.doc
- 新课程改革50问_纲要版.doc
- 新猎杀强庄(操盘手十年)国庆系列技术讲座.doc
- 新目标英语八年级Go for it下册610单元Units 610课文翻译.doc
- 新人教版高中思想政治必修3《源远流长的中华文化》教学案例.doc
- 新人教版小学数学四年级上册《纵向复式条形统计图》教案.doc
- 新人教版小学语文五年级下册26、《威尼斯的小艇》教案.doc
- 新世纪科学技术发展与展望试题及答案4.doc
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
最近下载
- 2025内蒙古能源集团智慧运维公司社会招聘笔试备考题库及答案解析.docx
- 标准图集-07FG01-人防工程图集-防空地下室设计荷载及结构构造.pdf
- 2025内蒙古能源集团智慧运维公司社会招聘(105人)笔试备考题库及答案解析.docx
- 黑龙江省哈尔滨市第三中学2023-2024学年高三上学期1月期末考试+化学+Word版含解析.docx
- 中草药栽培技术 课件 项目1--3 中草药的有性繁殖、中草药的无性繁殖、根及根茎类药材的栽培.pptx
- 高中英语北师大版选择性必修第四册Unit10Lesson2Communityspirit课件.pptx
- 高中政治人教版新教材必修一《中国特色社会主义》必备的知识点材料.pdf VIP
- 数学探究 用向量法研究三角形的性质.pptx
- T∕CACM 011-2016 中医药单用联合抗生素治疗常见感染性疾病临床实践指南 单纯性下尿路感染.docx VIP
- 2025年鞍钢集团有限公司人员招聘笔试备考题库.docx
文档评论(0)