基于直线斜率的凸多边形线裁剪算法.docVIP

基于直线斜率的凸多边形线裁剪算法.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于直线斜率的凸多边形线裁剪算法.doc

基于直线斜率的凸多边形线裁剪算法 第22卷第8期 2005年8月 计算机应用与软件 ComputerApplicationsandSoftware Vo1.22,No.8 Aug.2005 基于直线斜率的凸多边形线裁剪算法 唐棣单会秋 (辽宁师范大学计算机科学系辽宁大连116029) 摘要凸多边形的线裁剪算法在计算机图形学中占据着很重要的地位,现在的许多领域均有很重要的应用.本文提出了一种 非常有效的基于直线斜率的凸多边形线裁剪算法,并与Cyrus—Berk算法进行了比较.结果表明:本算法更加简单,高效. 关键词凸多边形斜率线裁剪法矢量 LINECLIPPlNGALGoRITl1[ToNCONVEXP0LYGoNBASEDoNLINE’SSLoPE TangDiShanHuiqiu (DepartmentofComputerScanCe.LiaoningNormalUniversit),DalianLiaoning116029,China) AbstractThelineclippingonconvexpolygonhasanimportantstatusinComputerGraphics,andisbeingusedinmanyfields.Thistext putsforwardaveryeffectiveclippingalgorithmbasedonline’Sslope,andcomparesitwithCyrus—BerkAlgorithmTheresultindicatesthatit issimplerandmoreeffective. KeywordsConvexpolygonLineslopeLineclippingNormalvector 1引言 裁剪是计算机图形学的重要内容,是在指定区域内识别图 形内外部分的一个过程.计算机图形学的许多重要操作以它作 为基础.裁剪主要应用在:从定义的场景中抽取出用于观察的 部分;在三维视图中标志需要的可见面;清晰各个对象之问的模 糊边界;用实体造型来创造对象;显示多窗口的环境等等方面. 目前对于二维的矩形窗口的线裁剪已经得到了人们深入的 研究,端点编码算法,Cohen—Suhenerland线段细分裁剪算法以 及中点分割等算法都比较成熟.然而,在许多应用中,裁剪窗口 并非规则矩形.因此,上面所述算法无一适用.对于一般凸多 边形窗口的线裁剪,目前也已有几种算法.其中最着名,最有效 的算法是由Cyrus和Berk提出的Cyrus—Berk算法. 2Cyrus—Berk算法 c,邢一Berk算法通过判断直线段的方向矢量与窗口边法 矢量的点积是否为零而将所有交点分为上下两组.然后,分别 取上组中的最小交点与下组中的最大交点,即为线段可见部分 的端点. 考虑一个凸多边形区域月,被裁 剪线段P.Pz.设/是R边界上的一 点,而,z是该点所处边界的内法线矢 量,如图1所示.线段的参数方程 为: P(t):PI+(P2一P1)}t(0≤£≤1) 魉图1内法线 矢量的方向 这时连接线段上一点到边界上其它任一点的矢量与内法线 矢量的点积为: n.?[P(t)一]i=1,2,… 当所取参数直线段上的点位于区域之内,区域边界上或区域之 外时,点积的值分别为大于零,等于零和小于零,这一关系式适 用于区域的任意边界.则直线与窗口交点的条件为: n?[P1+(—P1)}t一/=]=0 即:n.?(P1一)+n?(P2一P1)}t=0 设D=P2一P1;W=P1一/= 则:t=.?ni/D?niD≠O,i=1,2,… 若所得的t值位于0≤t≤1之外,则可抛弃.把剩余的t值分为 两组,一组为下限组,分布于线段起始点一侧;另一组为上限组, 分布于线段终点一侧.找出下限组中的最大t值和上限组中的 最小£值.若D?n.gt;0,侧求下限组中的最大值£P(£);相反, 若D?n.lt;0,则求上限组中的最小值t,从P(tL)到P(t)位于 窗口内,是可见线段. 3基于直线斜率的裁剪算法 该算法通过对被裁剪线段所在直线的斜率和凸多边形窗口 各边的斜率之问进行比较,并通过找出线段与凸多边形边界的 真实交点,快速有效地判断出线段对于凸多边形窗口的位置关 系,而裁剪出线段在凸多边形区域内的部分. 3.1算法的基本原理 多边形与线段的基本位置关系只有四种:线段在凸多边形 外,如图2(a);线段在凸多边形内,如图2(b);线段与凸多边形 有一个交点,如图2(C);线段与凸多边形有两个交点如图2 (d). 收稿日期:2004—06—16.唐棣,教授,主研领域:计算ULIE形学的 科研与教学工作. 116计算机应用与软件2005丘 图2线段与凸多边形的基本位置关系 假设凸多边形窗口的顶点为{P}(0≤≤,1),P.=(P,

文档评论(0)

zhangningclb + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档