CN112001987B - 一种多边形的裁剪方法、装置、电子设备及存储介质 - Google Patents
一种多边形的裁剪方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112001987B CN112001987B CN202010921693.3A CN202010921693A CN112001987B CN 112001987 B CN112001987 B CN 112001987B CN 202010921693 A CN202010921693 A CN 202010921693A CN 112001987 B CN112001987 B CN 112001987B
- Authority
- CN
- China
- Prior art keywords
- intersection point
- polygon
- sub
- adjacent intersection
- cutting line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004590 computer program Methods 0.000 claims description 10
- 125000002015 acyclic group Chemical group 0.000 claims description 4
- 239000000758 substrate Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明提供了一种多边形的裁剪方法、装置、电子设备及存储介质,该方法包括:确定切割线与所述多边形边界的交点;根据所述多边形边界上的第一相邻交点连接的第一子切割线上是否存在除第一相邻交点外的其它交点、和/或第一相邻交点连接的第一子切割线与所述多边形的位置关系,确定第一相邻交点之间的边界线所属的子多边形;其中,第一相邻交点连接的第一子切割线属于所述切割线。本发明能够方便地实现对多边形切割,实现方法较为简单。
Description
技术领域
本发明涉及矢量化数据技术领域,特别涉及一种多边形的裁剪方法、装置、电子设备及存储介质。
背景技术
多边形切割是矢量化地图数据处理的一个难点。
现有实现中公开有如下图形处理方案:将显示区域的每条边作为切割线对多边形进行切割处理,将切割线与多边形的角度区分为入点和出点并把入点和出点的具体情况分析确定切割线的属于显示区域一侧的多边形切割结果。该方案实现方法过于复杂。
发明内容
有鉴于此,本发明的目的在于提供了一种多边形的裁剪方法、装置、电子设备及存储介质,能够方便地实现对多边形的切割,实现方法较为简单。
为了达到上述目的,本发明提供了如下技术方案:
一种多边形的裁剪方法,包括:
确定切割线与所述多边形边界的交点;
根据所述多边形边界上的第一相邻交点连接的第一子切割线上是否存在除第一相邻交点外的其它交点、和/或第一相邻交点连接的第一子切割线与所述多边形的位置关系,确定第一相邻交点之间的边界线所属的子多边形;其中,第一相邻交点连接的第一子切割线属于所述切割线。
一种多边形的裁剪装置,包括:
交点确定单元,用于确定切割线与所述多边形边界的交点;
裁剪处理单元,用于根据所述多边形边界上的第一相邻交点连接的第一子切割线上是否存在除第一相邻交点外的其它交点、和/或第一相邻交点连接的第一子切割线与所述多边形的位置关系,确定第一相邻交点之间的边界线所属的子多边形;其中,第一相邻交点连接的第一子切割线属于所述切割线。
一种电子设备,包括:处理器和存储器;
所述存储器,存储有可被所述处理器执行的一个或多个计算机程序;
所述处理器,执行所述一个或多个计算机程序时实现上述多边形的裁剪方法中的步骤。
一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如上述多边形的裁剪方法中的步骤。
一种包含计算机程序的计算机程序产品,所述计算机程序设计用于在处理器上执行并且用于由此执行上述多边形的裁剪方法中的步骤。
由上面的技术方案可知,本发明中,在切割多边形时,先确定切割线与所述多边形边界的交点,再根据所述多边形边界上的第一相邻交点的连接的第一子切割线上是否存在其它交点和/或第一相邻交点连接的第一子切割线与所述多边形的位置关系,确定第一相邻交点之间的边界线所属的子多边形,实现方法较为简单。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的多边形的裁剪方法流程图;
图2是本发明实施例二提供的多边形的裁剪方法流程图;
图3是本发明实施例直线与多边形的交点示意图;
图4是本发明实施例多边形裁剪结果示意图;
图5是本发明实施例三提供的多边形的裁剪方法流程图;
图6是本发明实施例四提供的多边形的裁剪方法流程图;
图7是本发明实施例提供的多边形的裁剪装置的结构示意图;
图8是本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,图1是本发明实施例一提供的多边形的裁剪方法流程图,如图1所示,该方法包括以下步骤:
步骤101、确定切割线与所述多边形边界的交点;
步骤102、根据所述多边形边界上的第一相邻交点连接的第一子切割线上是否存在除第一相邻交点外的其它交点、和/或第一相邻交点连接的第一子切割线与所述多边形的位置关系,确定第一相邻交点之间的边界线所属的子多边形。
本实施例中,为了便于区分,将多边形边界上的相邻交点称为第一相邻交点。第一相邻交点连接的第一子切割线属于所述切割线。
由图1所示方法可以看出,本实施例中,对于多边形边界上的第一相邻交点,根据该第一相邻交点连接的第一子切割线的相关信息,即第一子切割线上是否存在其它交点和/或第一子切割线与所述多边形的位置关系,来确定第一相邻交点之间的边界线所属的子多边形,从而最终得到由切割线切割所述多边形而形成的各子多边形,实现方法较为简单。
参见图2,图2是本发明实施例二提供的多边形的裁剪方法流程图,如图2所示,该方法包括以下步骤:
步骤201、确定切割线与所述多边形边界的交点;
本实施例中,所述切割线可以是直线、折线、曲线等。所述多边形可以是非自交无环多边形,也可以是其他类型的多边形。确定切割线与所述多边形边界的交点,可采用现有实现方法,例如利用Turf.js中提供的切割线与多边形的交点确定方法,具体地,是利用turf库中的计算线段与多边形交点的方法,获取交点集合。利用turf库中的计算线段与多边形交点的方法获取的交点集合中,交点顺序对应多边形坐标点顺序(两者可以保持一致)。由于该交点集合中,交点顺序对应多边形坐标点顺序,因此通过该交点集合,可以确定多边形边界上的第一相邻交点。
图3示出了直线与多边形的交点示意图,如图3所示,多边形(p0-p1-p2-p3-p4-p5-p6-p7-p8-p9-p10-p0),直线(即图3中的虚线)与多边形的交点包括i0、i1、i2、i3、i4、i5共5个交点,其中,i0位于边p0-p1上,i1位于边p3-p4上,i2位于边p5-p6上,i3位于边p6-p7上,i4位于边p8-p9上,i5位于边p9-p10上。
在实际应用中,当用户在存在有多边形的操控显示界面上画一条切割线后,就可以触发确定该切割线和当前所有多边形是否存在交点的操作,即当检测到操作物(如鼠标)在操控显示界面上的画切割线的动作后,就可以利用利用turf库中的计算线段与多边形交点的方法,确定切割线与多边形的交点集合,并通过返回的交点集合长度判断是否有产生交点。当交点集合长度为0时,表明切割线与多边形边界不存在交点,多边形未被切割线裁剪,这种情况下可以直接本流程,不再执行后续步骤;当交点集合长度大于0时,表明切割线与多边形边界存在交点,多边形被切割线裁剪,这种情况下可以继续执行后续步骤(如本实施例中的步骤2021至步骤2023)。
步骤2021、判断所述多边形边界上的第一相邻交点连接的第一子切割线上是否存在除该第一相邻交点外的其它交点,如果存在,则执行步骤2022,否则,执行步骤2023;
本实施例中,将多边形边界上的相邻交点称为第一相邻交点,对于所述多边形边界上的任一第一相邻交点,均执行步骤2021至步骤2023的操作。
如图3所示,所述多边形边界上的第一相邻交点包括以下几组:
1)交点i0与i1,交点i0和i1之间的边界线为l1(i0-p1-p2-p3-i1);
2)交点i1与i2,交点i1与i2之间的边界线为l2(i1-p4-p5-i2);
3)交点i2与i3,交点i2与i3之间的边界线为l3(i2-p6-i3);
4)交点i3与i4,交点i3与i4之间的边界线为l4(i3-p7-p8-i4);
5)交点i4与i5,交点i4与i5之间的边界线为l5(i4-p9-i5);
6)交点i5与i0,交点i5与i0之间的边界线为l6(i5-p10-p0-i0)。
本实施例中,将第一相邻交点连接的子切割线称为第一子切割线,在判断第一相邻交点连接的第一子切割线上是否存在除第一相邻交点外的其它交点时,可以在存储了切割线数据的情况下,结合切割线数据文件确定,例如根据切割线数据文件中存储的切割线数据去判断,具体地,可以在切割线数据中查找各交点的生成时间,并查找生成时间介于第一相邻交点的生成时间之间的其它交点,如果成功查找到,则可确定这些查找到的其它交点位于第一相邻交点连接的切割线上,从而可以确定第一相邻交点连接的第一子切割线上存在除第一相邻交点外的其它交点。
另外,当所述切割线是直线时,还可以根据各交点的坐标来确定第一相邻交点连接的第一子切割线上是否存在除第一相邻交点外的其它交点。当所述切割线是直线时,由于所有交点都在直线上,因此,如果某个交点(xi,yi)位于另外两个交点(xj,yj)和(xk,yk)连接的子切割线上,则必然满足以下条件:xi位于区间[xj,xk]且yi位于区间[yj,yk]。基于此可知,在判断第一相邻交点连接的第一子切割线上是否存在除第一相邻交点外的其它交点时,可以通过查找坐标介于第一相邻交点的坐标之间其它交点,如果成功查找到,则可确定这些查找到的其它交点位于第一相邻交点连接的切割线上,从而可以确定第一相邻交点连接的第一子切割线上存在除第一相邻交点外的其它交点。例如在图3中,通过坐标比较可以确定交点i0和i1连接的子切割线上存在多个其它交点,分别是i2、i3、i4、i5。
步骤2022、根据该第一相邻交点之间的边界线和该第一相邻交点连接的第一子切割线上的交点,确定该第一相邻交点之间的边界线所属的子多边形。
如图3所示,第一相邻交点i0与i1连接的子切割线i0-i5-i4-i3-i2-i1上,除了交点i0和i1外,还存在交点i2、i3、i4、和i5四个交点,因此,可以进一步根据i0与i1之间的边界线l1(i0-p1-p2-p3-i1),以及子切割线i0-i5-i4-i3-i2-i1上的交点i2、i3、i4、和i5,来确定第一相邻交点i0与i1之间的边界线所属的子多边形。
步骤2023、在该第一相邻交点连接的第一子切割线位于所述多边形的内部的情况下,将该第一相邻交点之间的边界线和该第一相邻交点连接的第一子切割线连接而成的多边形确定为该第一相邻交点之间的边界线所属的子多边形。
如图3所示,
第一相邻交点i1与i2连接的子切割线i1-i2上不存在除i1与i2以外的其它交点,因此,将i1与i2之间的边界线l2(i1-p4-p5-i2)、i1与i2连接的子切割线i1-i2连接而成的多边形确定为i1与i2之间的边界线l2所属的子多边形(即图4中的子多边形B)。
第一相邻交点i3与i4连接的子切割线i3-i4上不存在除i3与i4以外的其它交点,因此,将i3与i4之间的边界线l4(i3-p7-p8-i4)、i3与i4连接的子切割线i3-i4连接而成的多边形确定为i3与i4之间的边界线l4所属的子多边形(即图4中的子多边形C)。
第一相邻交点i0与i5连接的子切割线i0-i5上不存在除i0与i5以外的其它交点,因此,将i0与i5之间的边界线l6(i5-p10-p0-i0)、i0与i5连接的子切割线i0-i5连接而成的多边形确定为i0与i5之间的边界线l6所属的子多边形(即图4中的子多边形D)。
以上步骤2021至步骤2023是图1所示步骤102的具体细化。
可选地,当第一相邻交点连接的第一子切割线上不存在除该第一相邻交点之外的其它交点,且该第一相邻交点连接的第一子切割线位于所述多边形的外部时,可以忽略此第一相邻交点,不针对此第一相邻交点做任何处理。
由图2所示方法可以看出,本实施例中,在确定切割线与所述多边形的交点后,在所述多变形边界线上的第一相邻交点连接的第一子切割线上存在其它交点时,继续根据该第一相邻交点之间的边界线和该第一相邻交点连接的第一子切割线上的交点,确定该第一相邻交点之间的边界线所属的子多边形;不存在其它交点时,则直接将该第一相邻交点连接的第一子切割线和该第一相邻交点之间的边界线连接而成的多边形确定为该第一相邻交点之间的边界线所属的子多边形,实现方法非常简单。
参见图5,图5是本发明实施例三提供的多边形的裁剪方法流程图,如图5所示,该方法包括以下步骤:
步骤501、确定切割线与所述多边形边界的交点;
步骤5021、判断所述多边形边界上的第一相邻交点连接的第一子切割线上是否存在除该第一相邻交点外的其它交点,如果存在,则执行步骤5022a至步骤5022b,否则,执行步骤5023;
本步骤5021与图2所示步骤2021的实现原理相同。
步骤5022a、在该第一子切割线上的交点中确定出第二相邻交点和第三相邻交点;所述第二相邻交点连接的第二子切割线位于所述多边形内部,所述第三相邻交点连接的第三子切割线位于所述多边形外部;
本实施例中,第一相邻交点连接的第一子切割线上存在除该第一相邻交点之外的其它交点时,将该第一子切割线上的相邻交点根据该相邻交点连接的子切割线与所述多边形的位置关系区分为第二相邻交点和第三相邻交点,第二相邻交点和第三相邻交点也是多边形边界上的相邻交点。其中,为了便于区分,将第二相邻交点连接的子切割线称为第二子切割线,第二子切割线位于所述多边形内部;将第三相邻交点连接的子切割线称为第三子切割线,第三子切割线位于所述多边形外部。第二子切割线和第三子切割线均属于所述切割线。
本实施例中,在该第一子切割线上的交点中确定出第二相邻交点和第三相邻交点,至少有以下两种实现方法:
方法一:
根据该第一子切割线上的交点在该第一子切割线的从该第一相邻交点中的第一交点到第二交点方向上的位置排序,将与第一交点的顺序差值为偶数的交点与其后一交点确定为第二相邻交点,将与第一交点的顺序差值为奇数的交点与其后一交点确定为第三相邻交点。
在实际应用中,用户在画切割线时,通常不会将切割线画成经过多边形的顶点,而在切割线不经过多边形的顶点的情况下,可以直接根据第一相邻交点连接的第一子切割线上的交点与第一相邻交点之间的顺序差值确定该交点与其下一交点是第二相邻交点或第三相邻交点,因此采用上述方法一时计算量较小。
方法二:
对于该第一子切割线上的每一相邻交点,确定该相邻交点连接的子切割线除该相邻交点外的一个位置点,当该位置点位于所述多边形内部时,将该相邻交点确定为第二相邻交点,当该位置点位于所述多边形外部时,将该相邻交点确定为第三相邻交点。
上述方法二可以适用于确定多边形与任何子切割线的位置关系,且能够保证准确性。
另外,在上述方法二中,确定相邻交点连接的子切割线除该相邻交点外的一个位置点时,可以通过从所存储的以该相邻交点为端点的子切割线中的点数据中取任一坐标点,并将该坐标点作为确定的位置点。特别地,在所述切割线是直线的情况下,还可以根据该相邻交点的坐标位置计算出该相邻交点的中点的坐标位置,然后将该相邻交点的中点作为确定的位置点,将相邻交点的中点作为确定的位置点,可以避免去读取切割线数据文件中存储的点数据,从而能够提高处理速度。
如图3所示,第一相邻交点i0与i1连接的第一子切割线上,除了交点i0和i1外,还存在交点i2、i3、i4、和i5四个交点,该第一子切割线上的相邻交点有以下几组:i0与i5、i5与i4、i4与i3、i3与i2、i2与i1。
从图3可以看出,i0与i5连接的子切割线、i4与i3连接的子切割线、i2与i1连接的子切割线均位于多边形内部,因此称为第二子切割线,且i0与i5、i4与i3、i2与i1均为第二相邻交点;而i5与i4连接的子切割线、i3与i2连接的子切割线均位于多边形外部,因此称为第三子切割线,且i5与i4、i3与i2均为第三相邻交点。另外,根据上述方法一或方法二给出的具体实施方案,也同样可以得到上述结论。
步骤5022b、将第一相邻交点之间的边界线、第二相邻交点连接的第二子切割线、以及第三相邻交点之间的边界线连接起来形成的多边形确定为第一相邻交点之间的边界线所属的子多边形。
如图3所示,第一相邻交点i0与i1之间的边界线l1(i0-p1-p2-p3-i1)、第二子切割线i1-i2、i2与i3之间的边界线l3(i2-p6-i3)、第二子切割线i3-i4、i4与i5之间的边界线l5(i4-p9-i5)、第二子切割线i5-i0连接起来形成了一个多边形,此多边形为第一相邻交点i0与i1之间的边界线l1所属的子多边形(即图4中的子多边形A)。
以上步骤5022a至5022b是图2所示步骤2022的具体细化。
本实施例中,在确定第一相邻交点连接的第一子切割线上不存在除第一相邻交点外的其它交点后,还可以进一步包括:确定该第一子切割线上的除第一相邻交点外的任一位置点,在该位置点位于所述多边形内部的情况下,确定该第一子切割线位于所述多边形内部。
步骤5023、在该第一子切割线位于所述多边形的内部的情况下,将第一相邻交点之间的边界线和该第一子切割线连接而成的多边形确定为第一相邻交点之间的边界线所属的子多边形。
本步骤5023与图2所示步骤2023的实现原理相同,不再赘述。
由图5所示方法可以看出,本实施例中,在确定切割线与所述多边形边界的交点后,在所述多变形边界线上的第一相邻交点连接的第一子切割线上存在其它交点时,将第一子切割线上的相邻交点根据其连接的子切割线位于所述多边形的之内或之外区分为第二相邻交点和第三相邻交点,从而将第一相邻交点之间的边界线、第二相邻交点连接的第二子切割线、以及第三相邻交点之间的边界线连接起来形成的多边形确定为第一相邻交点之间的边界线所属的子多边形;不存在其它交点时,则直接将第一子切割线和该第一相邻交点之间的边界线连接而成的多边形确定为该第一相邻交点之间的边界线所属的子多边形。本实施例中,对于第一子切割线上存在其它交点和不存在其它交点的情况的处理方法均较为简单。
参见图6,图6是本发明实施例四提供的多边形的裁剪方法流程图,如图6所示,该方法包括以下步骤:
步骤601、确定切割线与所述多边形边界的交点;
本实施例中,所述多边形可以为非自交无环多边形,所述多边形覆盖的区域为初始安防区域。所述切割线可以为直线。
步骤602、根据所述多边形边界上的第一相邻交点连接的第一子切割线上是否存在除第一相邻交点外的其它交点、和/或第一相邻交点连接的第一子切割线与所述多边形的位置关系,确定第一相邻交点之间的边界线所属的子多边形,其中,第一相邻交点连接的第一子切割线属于所述切割线;
以上步骤601-602与图1所示步骤101-102的实现原理相同。
本实施例中,在确定所述多边形经所述切割线裁剪形成的子多边形之后,还可以进一步执行步骤603。
步骤603、将对子多边形向远离所述切割线的方向移动后得到的子多边形覆盖的区域确定为最终安防区域。
本实施例中,使用切割线对所述多边形进行切割从而得到多个子多边形,然后通过拖动每个子多边形,可以使得每个子多边形覆盖的区域与实际需要监控的场景相贴合,例如初始的安防区域中存在不需要监控的区域(如走道),经切割和拖动后形成多个新的安防区域后,新的安防区域内不再包括上述不需要监控的区域。先绘制作为初始安防区域的多边形,再通过切割线将作为初始安防区域的多边形裁剪成多个子多边形,并通过拖动各子多边形得到多个最终安防区域的方法,相较于逐块绘制最终安防区域的方式,实施过程相对会更加方便和简单。
由图6所示方法可以看出,本实施例中,使用切割线对作为初始安防区域的多边形进行切割和拖动后形成多个新的安防区域,从而可以使得新的安防区域作为最终安防区域满足实际监控场景的监控需求。
以上对本发明实施例提供的多边形的裁剪方法进行了详细说明,本发明还提供了一种多边形的裁剪装置,以下结合图7进行详细说明。
参见图7,图7是本发明实施例提供的多边形的裁剪装置的结构示意图,如图7所示,该装置包括:
交点确定单元701,用于确定切割线与所述多边形边界的交点;
裁剪处理单元702,用于根据所述多边形边界上的第一相邻交点连接的第一子切割线上是否存在除第一相邻交点外的其它交点、和/或第一相邻交点连接的第一子切割线与所述多边形的位置关系,确定第一相邻交点之间的边界线所属的子多边形;其中,第一相邻交点连接的第一子切割线属于所述切割线。
图7所示装置中,
所述裁剪处理单元702,根据所述多边形边界上的第一相邻交点连接的第一子切割线上是否存在除第一相邻交点外的其它交点、和/或第一相邻交点连接的第一子切割线与所述多边形的位置关系,确定第一相邻交点之间的边界线所属的子多边形,包括:
针对任一对第一相邻交点,如果该第一相邻交点连接的第一子切割线上存在除该第一相邻交点外的其它交点,则根据该第一相邻交点之间的边界线和该第一相邻交点连接的第一子切割线上的交点,确定该第一相邻交点之间的边界线所属的子多边形;
和/或,
针对任一对第一相邻交点,如果该第一相邻交点连接的第一子切割线上不存在除第一相邻交点外的其它交点,且该第一相邻交点连接的第一子切割线位于所述多边形的内部,则将该第一相邻交点之间的边界线和该第一相邻交点连接的第一子切割线连接而成的多边形确定为该第一相邻交点之间的边界线所属的子多边形;
图7所示装置中,
所述裁剪处理单元702,根据该第一相邻交点之间的边界线和该第一相邻交点连接的第一子切割线上的交点,确定该第一相邻交点之间的边界线所属的子多边形,包括:
在该第一子切割线上的交点中确定出第二相邻交点和第三相邻交点;所述第二相邻交点连接的第二子切割线位于所述多边形内部,所述第三相邻交点连接的第三子切割线位于所述多边形外部;
将第一相邻交点之间的边界线、第二相邻交点连接的第二子切割线、以及第三相邻交点之间的边界线连接起来形成的多边形确定为该第一相邻交点之间的边界线所属的子多边形。
图7所示装置中,
所述裁剪处理单元702,在该第一子切割线上的交点中确定出第二相邻交点和第三相邻交点,包括:
根据该第一子切割线上的交点在该第一子切割线的从第一相邻交点中的第一交点到第二交点方向上的位置排序,将与第一交点的顺序差值为偶数的交点与其后一交点确定为第二相邻交点,将与第一交点的顺序差值为奇数的交点与其后一交点确定为第三相邻交点;
或者,
对于该第一子切割线上的每一相邻交点,确定该相邻交点连接的子切割线上除该相邻交点外的一个位置点,当该位置点位于所述多边形内部时,将该相邻交点确定为第二相邻交点,当该位置点位于所述多边形外部时,将该相邻交点确定为第三相邻交点。
图7所示装置中,
所述裁剪处理单元702,还用于:如果该第一相邻交点连接的第一子切割线上不存在除第一相邻交点外的其它交点,则确定该第一子切割线上的除该第一相邻交点外的任一位置点,在该位置点位于所述多边形内部的情况下,确定该第一子切割线位于所述多边形内部。
图7所示装置中,
所述多边形可以为非自交无环多边形,所述切割线可以为直线,所述多边形覆盖的区域为初始安防区域;
所述裁剪处理单元702,在确定所述多边形经所述切割线裁剪形成的子多边形之后,进一步用于:将对子多边形向远离所述切割线的方向移动后得到的子多边形覆盖的区域确定为最终安防区域。
本发明实施例还提供了一种电子设备,如图8所示,该电子设备包括:处理器801和存储器802;
所述存储器802,存储有可被所述处理器执行的一个或多个计算机程序;
所述处理器801,执行所述一个或多个计算机程序时实现图1、图2、图5、或图6所示的多边形的裁剪方法中的步骤。
本发明实施例还提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如图1、图2、图5、或图6所示的多边形的裁剪方法中的步骤。
本发明实施例还提供了一种包含计算机程序的计算机程序产品,所述计算机程序设计用于在处理器上执行并且用于由此执行上述图1、图2、图5、或图6所示的多边形的裁剪方法中的步骤。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (7)
1.一种多边形的裁剪方法,其特征在于,该方法用于所述多边形覆盖的区域的地图数据处理,包括:
确定切割线与所述多边形边界的交点;
针对所述多边形边界上的任一第一相邻交点,确定该第一相邻交点连接的第一子切割线上是否存在除第一相邻交点外的其它交点;其中,该第一相邻交点连接的第一子切割线属于所述切割线;
如果不存在其它交点,且该第一相邻交点连接的第一子切割线位于所述多边形的内部,则将该第一相邻交点之间的边界线和该第一相邻交点连接的第一子切割线连接而成的多边形确定为该第一相邻交点之间的边界线所属的子多边形;
如果存在其它交点,则在该第一子切割线上的交点中确定出第二相邻交点和第三相邻交点,所述第二相邻交点连接的第二子切割线位于所述多边形内部,所述第三相邻交点连接的第三子切割线位于所述多边形外部;将该第一相邻交点之间的边界线、第二相邻交点连接的第二子切割线、以及第三相邻交点之间的边界线连接起来形成的多边形确定为该第一相邻交点之间的边界线所属的子多边形;
其中,在该第一子切割线上的交点中确定出第二相邻交点和第三相邻交点,包括:
根据该第一子切割线上的交点在该第一子切割线的从第一相邻交点中的第一交点到第二交点方向上的位置排序,将与第一交点的顺序差值为偶数的交点与其后一交点确定为第二相邻交点,将与第一交点的顺序差值为奇数的交点与其后一交点确定为第三相邻交点;
或者,
对于该第一子切割线上的每一相邻交点,确定该相邻交点连接的子切割线上除该相邻交点外的一个位置点,当该位置点位于所述多边形内部时,将该相邻交点确定为第二相邻交点,当该位置点位于所述多边形外部时,将该相邻交点确定为第三相邻交点。
2.根据权利要求1所述的方法,其特征在于,如果该第一相邻交点连接的第一子切割线上不存在除第一相邻交点外的其它交点,该方法还包括:
确定该第一子切割线上的除该第一相邻交点外的任一位置点,在该位置点位于所述多边形内部的情况下,确定该第一子切割线位于所述多边形内部。
3.根据权利要求1所述的方法,其特征在于,
所述多边形为非自交无环多边形,所述切割线为直线,所述多边形覆盖的区域为初始安防区域;
在确定所述多边形经所述切割线裁剪形成的子多边形之后,该方法进一步包括:将对子多边形向远离所述切割线的方向移动后得到的子多边形覆盖的区域确定为最终安防区域。
4.一种多边形的裁剪装置,其特征在于,该装置用于所述多边形覆盖的区域的地图数据处理,包括:
交点确定单元,用于确定切割线与所述多边形边界的交点;
裁剪处理单元,用于:
针对所述多边形边界上的任一第一相邻交点,确定该第一相邻焦点连接的第一子切割线上是否存在除第一相邻交点外的其它交点,其中,该第一相邻交点连接的第一子切割线属于所述切割线;
如果不存在其它交点,且该第一相邻交点连接的第一子切割线位于所述多边形的内部,则将该第一相邻交点之间的边界线和该第一相邻交点连接的第一子切割线连接而成的多边形确定为该第一相邻交点之间的边界线所属的子多边形;
如果存在其它交点,则在该第一子切割线上的交点中确定出第二相邻交点和第三相邻交点,所述第二相邻交点连接的第二子切割线位于所述多边形内部,所述第三相邻交点连接的第三子切割线位于所述多边形外部;将该第一相邻交点之间的边界线、第二相邻交点连接的第二子切割线、以及第三相邻交点之间的边界线连接起来形成的多边形确定为该第一相邻交点之间的边界线所属的子多边形;
其中,所述裁剪处理单元,在该第一子切割线上的交点中确定出第二相邻交点和第三相邻交点,包括:
根据该第一子切割线上的交点在该第一子切割线的从第一相邻交点中的第一交点到第二交点方向上的位置排序,将与第一交点的顺序差值为偶数的交点与其后一交点确定为第二相邻交点,将与第一交点的顺序差值为奇数的交点与其后一交点确定为第三相邻交点;
或者,
对于该第一子切割线上的每一相邻交点,确定该相邻交点连接的子切割线上除该相邻交点外的一个位置点,当该位置点位于所述多边形内部时,将该相邻交点确定为第二相邻交点,当该位置点位于所述多边形外部时,将该相邻交点确定为第三相邻交点。
5.根据权利要求4所述的装置,其特征在于,
如果该第一相邻交点连接的第一子切割线上不存在除第一相邻交点外的其它交点,所述裁剪处理单元还用于:
确定该第一子切割线上的除该第一相邻交点外的任一位置点,在该位置点位于所述多边形内部的情况下,确定该第一子切割线位于所述多边形内部;
所述多边形为非自交无环多边形,所述切割线为直线,所述多边形覆盖的区域为初始安防区域;
所述裁剪处理单元,还用于在确定所述多边形经所述切割线裁剪形成的子多边形之后,将对子多边形向远离所述切割线的方向移动后得到的子多边形覆盖的区域确定为最终安防区域。
6.一种电子设备,其特征在于,该电子设备包括:处理器和存储器;
所述存储器,存储有可被所述处理器执行的一个或多个计算机程序;
所述处理器,执行所述一个或多个计算机程序时实现权利要求1-3中任一权项所述的方法中的步骤。
7.一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,其特征在于,所述指令在由处理器执行时使得所述处理器执行如权利要求1至3中任一权项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010921693.3A CN112001987B (zh) | 2020-09-04 | 2020-09-04 | 一种多边形的裁剪方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010921693.3A CN112001987B (zh) | 2020-09-04 | 2020-09-04 | 一种多边形的裁剪方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112001987A CN112001987A (zh) | 2020-11-27 |
CN112001987B true CN112001987B (zh) | 2023-12-01 |
Family
ID=73468335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010921693.3A Active CN112001987B (zh) | 2020-09-04 | 2020-09-04 | 一种多边形的裁剪方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112001987B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241231B (zh) * | 2020-10-22 | 2021-12-07 | 北京字节跳动网络技术有限公司 | 构建虚拟装配体的方法、装置和计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5455897A (en) * | 1993-03-08 | 1995-10-03 | The University Of Western Ontario | Polygon and polyline clipping for computer graphic displays |
JP2007323585A (ja) * | 2006-06-05 | 2007-12-13 | Hitachi Ltd | ポリゴンデータ分割方法およびポリゴンデータ分割装置 |
CN102074027A (zh) * | 2010-12-15 | 2011-05-25 | 中国石油集团川庆钻探工程有限公司 | 二维地质模型成块方法 |
CN102522043A (zh) * | 2011-12-12 | 2012-06-27 | 光庭导航数据(武汉)有限公司 | 基于线段拓扑关系的多边形压缩方法 |
CN104658018A (zh) * | 2013-11-18 | 2015-05-27 | 北京四维图新科技股份有限公司 | 一种分解环套多边形的方法和制图装置 |
CN106447671A (zh) * | 2016-09-09 | 2017-02-22 | 浙江大学 | 一种根据指定面积的矢量多边形自动分割方法 |
CN107038731A (zh) * | 2017-04-01 | 2017-08-11 | 东南大学 | 一种解决交点退化问题的复杂多边形裁剪方法 |
-
2020
- 2020-09-04 CN CN202010921693.3A patent/CN112001987B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5455897A (en) * | 1993-03-08 | 1995-10-03 | The University Of Western Ontario | Polygon and polyline clipping for computer graphic displays |
JP2007323585A (ja) * | 2006-06-05 | 2007-12-13 | Hitachi Ltd | ポリゴンデータ分割方法およびポリゴンデータ分割装置 |
CN102074027A (zh) * | 2010-12-15 | 2011-05-25 | 中国石油集团川庆钻探工程有限公司 | 二维地质模型成块方法 |
CN102522043A (zh) * | 2011-12-12 | 2012-06-27 | 光庭导航数据(武汉)有限公司 | 基于线段拓扑关系的多边形压缩方法 |
CN104658018A (zh) * | 2013-11-18 | 2015-05-27 | 北京四维图新科技股份有限公司 | 一种分解环套多边形的方法和制图装置 |
CN106447671A (zh) * | 2016-09-09 | 2017-02-22 | 浙江大学 | 一种根据指定面积的矢量多边形自动分割方法 |
CN107038731A (zh) * | 2017-04-01 | 2017-08-11 | 东南大学 | 一种解决交点退化问题的复杂多边形裁剪方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112001987A (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3199765B2 (ja) | 複合イメ−ジエディタ | |
US20190277645A1 (en) | Navigation route editing method and apparatus, and control device | |
US11636487B2 (en) | Graph decomposition for fraudulent transaction analysis | |
CN112560862B (zh) | 文本识别方法、装置及电子设备 | |
JP5434736B2 (ja) | 位置検知プログラム、位置検知装置および位置検知方法 | |
CN109806585B (zh) | 游戏的显示控制方法、装置、设备和存储介质 | |
US11473926B2 (en) | Method and apparatus for displaying road names, and storage medium | |
CN109376590A (zh) | 基于无人车的障碍物分类方法、装置、设备以及存储介质 | |
CN112561859B (zh) | 基于单目视觉的锚护用钢带钻孔与锚网识别方法及装置 | |
CN107622530A (zh) | 一种高效鲁棒的三角网切割方法 | |
CN106934842B (zh) | 闭合区域的识别方法和装置 | |
CN108961294A (zh) | 一种三维点云的分割方法及装置 | |
CN112001987B (zh) | 一种多边形的裁剪方法、装置、电子设备及存储介质 | |
Hertel et al. | Space sweep solves intersection of convex polyhedra | |
CN104915053A (zh) | 一种界面控件的位置确定方法和装置 | |
CN113971728A (zh) | 图像识别方法、模型的训练方法、装置、设备及介质 | |
CN110852138B (zh) | 一种图像数据中物体的标注方法和装置 | |
CN112541464A (zh) | 关联道路对象的确定方法、装置、路侧设备和云控平台 | |
WO2023179382A1 (zh) | 机器人地图中障碍物的标记方法及装置 | |
CN112861595A (zh) | 数据点的识别方法、装置和计算机可读存储介质 | |
CN111143572A (zh) | 关联图谱构建方法、装置、计算机设备、及存储介质 | |
CN109636879A (zh) | 带岛的多边形曲线偏移算法 | |
Wang et al. | An effective algorithm for lines and polygons overlay analysis using uniform spatial grid indexing | |
CN113867371A (zh) | 路径规划方法和电子设备 | |
CN112240770A (zh) | 一种生成机器人运动轨迹的方法、装置及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |