首页> 中国专利> 多边形裁剪中交点为多边形顶点的进出性判别方法

多边形裁剪中交点为多边形顶点的进出性判别方法

摘要

本发明公开一种多边形裁剪中交点为多边形顶点的进出性判别方法,在裁剪多边形C与实体多边形S之间交点求解,且在交点的进出性预判别之后,计算交点集合中具有相同坐标交点的个数,并针对交点中存在重点现象,分为存在两个相同坐标的交点情况和存在两个以上相同坐标的交点情况的不同情况分别进行阐述,进而确定交点的进出性,最终可得到精准的裁剪结果。本发明步骤简单易实现,准确度高。

著录项

  • 公开/公告号CN104036533A

    专利类型发明专利

  • 公开/公告日2014-09-10

    原文格式PDF

  • 申请/专利权人 东南大学;

    申请/专利号CN201410251976.6

  • 发明设计人 王慧青;崇素文;王庆;李玲;

    申请日2014-06-09

  • 分类号G06T11/00(20060101);

  • 代理机构南京苏高专利商标事务所(普通合伙);

  • 代理人柏尚春

  • 地址 210096 江苏省南京市鼓楼区四牌楼2号

  • 入库时间 2023-12-17 01:44:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-15

    授权

    授权

  • 2014-10-15

    实质审查的生效 IPC(主分类):G06T11/00 申请日:20140609

    实质审查的生效

  • 2014-09-10

    公开

    公开

说明书

技术领域

本发明涉及一种计算机图形学领域,具体涉及一种多边形裁剪中交点为多边 形顶点的进出性判别方法。

背景技术

多边形的裁剪是图形学中的基本操作,一般多边形之间的裁剪过程为裁剪多 边形与实体多边形定点的顺序存储、裁剪多边形与实体多边形之间交点求解、多 边形交点的进出性判别、多边形交点分别插入裁剪多边形与实体多边形的顶点集 合,通过交点的进出性交替便利裁剪多边形和实体多边形得到裁剪结果。

现有技术中存在的问题是:当裁剪多边形与实体多边形存在顶点或边合的情 况时,在求解裁剪多边形与主多边形的交点时存在多个相同的交点,并且交点的 进出性判定不一致,从而无法准确的插入裁剪多边形和实体多边形的顶点集合 中,同时无法根据交点的进出性得到准确的裁剪结果。

发明内容

发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种多边形 裁剪中交点为多边形顶点的进出性判别方法。

技术方案:本发明的一种多边形裁剪中交点为多边形顶点的进出性判别方 法,包括以下具体步骤:

(1)在裁剪多边形C与实体多边形S之间交点求解,且在交点的进出性预判 别之后,计算交点集合中具有相同坐标交点的个数;其中,用Ci代表裁剪多边形 的第i个顶点,用Sj代表实体多边形的第j个顶点,T表示裁剪多边形和实体多边形 求交后的交点集合,Tk代表添加到裁剪多边形中交点集合T中第k个交点,Ql代表 添加到实体多边形顶点序列中交点集合Q的第l个点,其中i,j,k,l∈[1,2…,n],NT 为新添加到裁剪多边形顶点序列新添加到Tk中的交点,NQ为新添加到Ql中的交 点;

(2)当具有相同坐标交点的个数N等于2时,说明裁剪多边形与实体多边 形存在相同的顶点,且顶点坐标等于交点坐标,假设这两个交点分别表示为Tk与Tk+1,Q中与Tk与Tk+1坐标相同的两个交点分别为Ql与Ql+1,则该顶点进出 性的判别步骤如下:

(21)如果Tk与Tk+1的进出性相同:

①若交点Tk与Tk+1的坐标与顶点Ci坐标不相等,交点Ql与Ql+1的坐标与顶 点Sj坐标相同,则交点Tk与Tk+1是裁剪过程中的需要添加的交点,添加一个交 点NT,该交点坐标及进出性均与Tk相同,且交点Ql与Ql+1是裁剪过程中的顶 点坐标,设置Sj的进出性与顶点Ci的进出性相异;

②若交点Tk与Tk+1的坐标与顶点Ci坐标相等,交点Ql与Ql+1的坐标与顶点 Sj坐标相同,则交点Tk与Tk+1是裁剪过程中顶点,设置顶点Ci的进出性等于交 点Tk与Tk+1的进出性,交点Ql与Ql+1是裁剪过程中需要添加的交点,添加一个 新点NQ,该交点坐标及其进出性与Ql相同;

③从交点集合T中删除交点Tk与Tk+1,交点集合Q中删除交点Ql与Ql+1

(22)如果Tk与Tk+1的进出性不相同:

①若交点Tk与Tk+1的坐标与顶点Ci坐标不等,交点Ql与Ql+1的坐标与顶点 Sj坐标相等,判别交点Tk与Tk+1的先后顺序以及后一个交点的进出性,进而判 别顶点Sj的进出性,并向T中添加新交点NT,其中NT的坐标及进出性与Sj相同;

②若交点Tk与Tk+1的坐标与顶点Ci坐标相等,交点Ql与Ql+1的坐标与顶点 Sj坐标相等,判别交点Tk与Tk+1的先后顺序,依据得到交点Tk与Tk+1裁剪多边 形线段的先后顺序,进而得到顶点Ci的进出性,向Q中添加新较低那NQ,其 中NQ的坐标与顶点Ci的坐标相同,进出性相异。

③从交点集合T中删除交点Tk与Tk+1,交点集合Q中删除交点Ql与Ql+1

(23)完成对交点集合T和Q中所有存在两个相同坐标的交点的处理,设 置相应多边形顶点的进出性,更新交点集合T中的交点;

(3)当具有相同坐标交点的个数N大于2时,则顶点进出性的判别步骤如 下:

(31)该交点坐标与裁剪多边形的顶点Ci坐标相同,同时该交点坐标与实 体多边形的顶点Sj坐标相同;

(32)判断以顶点Ci为起点的边CiCi+1与实体多边形的边Sj-1Sj与边SjSj+1是否共线;

(33)如果不存在共线,边CiCi+1与顶点Sj-1、Sj和Sj+1构成的内角∠Sj-1SjSj+1的关系,如果边CiCi+1在内角∠Sj-1SjSj+1内部,则顶点Ci为进点,在内角∠Sj-1SjSj+1的外部,则顶点Ci为出点,顶点Sj为进点;

(34)如果存在共线,判断边Ci+1Ci与顶点Sj-1、Sj和Sj+1构成的内角∠ Sj-1SjSj+1的关系,如果边Ci-1Ci在内角∠Sj-1SjSj+1的内部,则顶点Ci为出点;如 果边Ci-1Ci在内角∠Sj-1SjSj+1的外部,则顶点Ci为进点,顶点Sj为出点;

(35)删除交点集合T和Q中存在两个以上相同坐标的交点。

进一步的,所述步骤(1)的具体步骤如下:

(11)分别将裁剪多边形C和实体多边形S的顶点坐标按顺时针存储成序列, 其中用Ci代表裁剪多边形的第i个顶点,用Sj代表实体多边形中第j个顶点;

(12)按顺序对裁剪多边形C的边和实体多边形S的边进行求交运算,求出 可能存在交点的边;

(13)对多边形求交的交点集合进行统计,获得存在相同坐标的交点的数量, 判断交点坐标与多边形顶点是否相同,进而判断交点是否为添加到多边形顶点序 列中的交点;

(14)以实体多边形S为参考对象,判断出将添加到裁剪多边形C顶点序列 中的交点的进出性以及添加到实体多边形S顶点序列中的交点的进出性。

进一步的,若所述步骤(14)中的交点坐标唯一,则该交点为多边形线段间 的交点。

进一步的,当判断存在交点的多边形顶点的进出性后,保留坐标唯一的交点; 然后按顺序将交点添加到多边形顶点序列中,并更新顶点序列表;接着交替遍历 更新后裁剪多边形和实体多边形顶点序列,通过顶点的进出性和添加的交点的进 出性得到裁剪结果多边形。

有益效果:本发明能够去除线段求交过程中所有冗余的交点,提高裁剪过程 的效率;同时扩展多边形裁剪方法的适用范围,可以提高实现裁剪多边形与实体 多变形之间的求交运算的准确性,通过本发明中快速准确的判别交点的进出性, 最终能够得到准确的裁剪图形。

附图说明

图1为本发明中存在顶点为交点时的多边形裁剪流程示意图;

图2为本发明中存在两个相同交点的示意图;

图3为本发明中存在两个相同交点时的流程示意图;

图4为本发明中存在两个以上相同交点的示意图;

图5为本发明中存在两个以上相同交点时的流程示意图。

具体实施方式

下面对本发明技术方案结合附图进行详细说明。

如图1所示,当裁剪多边形C与实体多边形S的交点为多边形顶点时的多 边形裁剪步骤如下:

(1)将裁剪多边形C和实体多边形S的顶点坐标按顺时针存储成点序列;

(2)按顺序对裁剪多边形C的边与实体多边形S的边进行求交运算,求出 可能存在交点的边;

(3)以实体多边形S为参考对象,判断出将要插入到裁剪多边形C中的交 点的进出性,插入实体多边形S的交点的进出性相异;

(4)对两个多边形求出的交点进行统计,获得存在相同坐标的交点的数量;

(4.1)如果交点存在重点现象,则需要进行两种情况:一种交点坐标与 多边形顶点坐标相同;另一种情况交点坐标与一个多边形顶点坐标相同,同时是 另一多边形的交点;

(4.2)如果交点坐标唯一,则为多边形线段间的交点;

(5)判断存在交点的多边形顶点的进出性,保留坐标唯一的交点;

(6)按顺序将交点添加到多边形顶点序列中,更新顶点序列表;

(7)交替遍历更新后裁剪多边形和实体多边形顶点序列,通过顶点的进出 性和添加的交点的进出性得到裁剪结果多边形。

下面针对交点中存在重点现象,分为存在两个相同坐标的交点情况和存在两 个以上相同坐标的交点情况的不同情况进行阐述。

如图2所示,当存在两个相同坐标的交点情况时的实施例为:由顶点C1、 C2、C3、C4、C5、C6、C7构成裁剪多边形,由顶点S1、S2、S3、S4、S5、S6、S7、 S8、S9、S10、S11构成实体多边形。图中的裁剪多边形C与实体多边形S完成线 段求交后,由于顶点S2、S8以及S11的坐标在线段C3C4、C5C6和C1C2上,同时 顶点C4与S5坐标相同且线段C3C4与S4S5、C4C5与S5S6共线,则交点集合T中 存在两个与顶点C4、S2、S8及S11坐标相同的交点,由于待插入多边形顶点中的 交点集合需要其坐标唯一,因此需要对存在两个相同坐标的交点情况进行相应处 理。

如图3所示,当存在两个相同坐标的交点情况时的处理步骤如下:

(1)在交点集合T中存在出相同坐标的交点的数量为N=2,分别为交点Tk和Tk+1

(2)通过交点Tk与Tk+1和交点Ql与Ql+1的进出性以及交点Tk与Tk+1和交点 Ql与Ql+1坐标是否是裁剪多边形和实体多边形的顶点坐标,从而判别裁剪多边形 与实体多边形的裁剪转折点是多边形的顶点还是交点;

(2.1)如果Tk与Tk+1的进出性相同

①若交点Tk与Tk+1的坐标与顶点Ci坐标不等,交点Ql与Ql+1的坐标与顶点 Sj坐标相同,则交点Tk与Tk+1是裁剪过程中的一个需要添加的交点,添加一个 交点NT,该交点坐标及进出性与Tk相同;交点Ql与Ql+1是裁剪过程中的顶点 坐标,设置Sj的进出性与交点Ci的进出性相异;

②若交点Tk与Tk+1的坐标与顶点Ci坐标相等,交点Ql与Ql+1的坐标与顶点 Sj坐标相同,则交点Tk与Tk+1是裁剪过程中顶点坐标,设置顶点Ci的进出性等 于交点T1与T2的进出性,交点Ql与Ql+1是裁剪过程中需要添加的交点,添加一 个新交点NQ,该交点坐标及其进出性与Ql相同;

③从交点集合T中删除交点Tk与Tk+1,交点集合Q中删除交点Ql与Ql+1

(2.2)如果Tk与Tk+1的进出性不相同

①若交点Tk与Tk+1的坐标与顶点Ci坐标不等,交点Ql与Ql+1的坐标与顶点 Sj坐标相等,判别交点Tk与Tk+1的先后顺序,依据得到交点Tk与Tk+1实体多边 形线段的先后顺序,依据后一个交点的进出性可以判别顶点Sj的进出性,并向T 中添加新交点NT,其中NT的坐标及进出性与Sj相同;

②若交点Tk与Tk+1的坐标与顶点Ci坐标相等,交点Ql与Ql+1的坐标与顶点 Sj坐标相等,判别交点Tk与Tk+1的先后顺序,依据得到交点Tk与Tk+1裁剪多边 形线段的先后顺序,得到顶点Ci的进出性向Q中添加新交点NQ,其中NQ的 坐标与顶点Ci的坐标相同,进出性相异;

③从交点集合T中删除交点Tk与Tk+1,交点集合Q中删除交点Ql与Ql+1

(3)完成对交点集合T和Q中所有存在两个相同坐标的交点的处理,设置相 应多边形顶点的进出性,更新交点集合T中的交点。

如图4所示,当存在两个以上相同坐标的交点情况时的实施例为:由顶点 C1、C2、C3、C4、C5、C6构成裁剪多边形,由顶点S1、S2、S3、S4、S5、S6、S7、 S8构成实体多边形。在完成裁剪多边形与实体多边形线段求交后,由于顶点C1与S1、C2与S3、C4与S7坐标相同,所以在交点集合T中存在两个以上与顶点 C1(顶点S1)、顶点C2(顶点S3)以及顶点C4(顶点S7)坐标相同的交点,由 于待插入多边形顶点中的交点集合需要其坐标唯一,因此需要对存在两个以上相 同坐标的交点情况进行相应处理。

如图5所示,当存在两个以上相同坐标的交点情况时的处理步骤如下:

(1)在交点集合T中存在相同坐标交点数量N>2;

(2)该交点坐标与裁剪多边形的顶点Ci坐标相同,同时该交点坐标与实体 多边形的顶点Sj坐标相同;

(3)判断以以顶点Ci为起点的边CiCi+1与实体多边形的边Sj-1Sj与边SjSj+1是否共线;.

(4)不存在共线,边CiCi+1与顶点Sj-1、Sj和Sj+1构成的内角∠Sj-1SjSj+1的 关系,如果边CiCi+1在内角∠Sj-1SjSj+1内部,则顶点Ci为进点,在内角∠Sj-1SjSj+1的外部,则顶点Ci为出点,顶点Sj为进点;

(5)如果存在共线,判断边Ci+1Ci与顶点Sj-1、Sj和Sj+1构成的内角∠Sj-1SjSj+1的关系,如果边Ci-1Ci在内角∠Sj-1SjSj+1的内部,则顶点Ci为出点;如果边Ci-1Ci在内角∠Sj-1SjSj+1的外部,则顶点Ci为进点,顶点Sj为出点;

(6)删除交点集合T和Q中存在两个以上相同坐标的交点。

通过上述两个实施例可以看出,本发明的多边形裁剪中交点为多边形顶点 的进出性判别方法,步骤简单易实现并且准确度高,可以精准的根据交点的进出 性得到准确的裁剪结果。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号