多边形与多边形位置关系判断方法、系统和计算机可读存储介质与流程

文档序号:20031183发布日期:2020-02-28 10:24阅读:489来源:国知局
多边形与多边形位置关系判断方法、系统和计算机可读存储介质与流程

本发明涉及计算机几何图形技术领域,涉及一种基于求交和采样的判断多边形/多边形位置关系的方法,特别涉及一种多边形与多边形位置关系判断方法、系统和计算机可读存储介质。



背景技术:

位置关系判断是计算机图形学中的基本问题之一。在建筑设计及建筑算量领域,位置关系判断是一项重要工作,例如判断道路是否经过某地区,建筑物是否在指定区域内等。

点和多边形位置关系判断方法已较为成熟,但多边形/多边形位置关系判断方法在当前可见文献中很难发现。

点/多边形位置关系是cad几何平台的一个基础方法。较之更上游的多边形/多边形位置关系判断中会使用到点/多变形位置关系判断。

几何拓扑元素的位置关系在cad系统中应用十分广泛,例如区域选择等。

现有的技术提供一种点和多边形位置关系判断方法,例如射线法和环绕数法。但是没有提供多边形与多边形之间位置关系判断方法,多边形与多边形位置关系判断更复杂,但在实际应用中更加普遍。

基于上述需求,需要一种可以判断多边形与多边形位置关系的方法,并且要求其高效,稳定。



技术实现要素:

本发明针对以上问题,提供了一种多边形与多边形位置关系判断方法,通过输入的数字图形文件,数字图形包括两外环,上述判断方法包括:

步骤一、判断外环之间的位置关系,包括但不限于相离、相交、包含和重合,根据不同位置关系定义为外侧多边形及内侧多边形;

步骤二、判断外侧多边形内环与内侧多边形外环的位置关系,若外侧多边形内环包含内侧多边形外环或两者重合,则两多边形相离;若两环相交,则多边形相交;

步骤三、检测是否有独立区域存在情况;

步骤四、根据独立区域情况推断两多边形位置关系;

步骤五、判断结束并输出结果。

优选的,上述步骤一具体判断如下:

若两外环相离则两多边形相离;

若两外环相交则两多边形相交;

若两外环是包含关系则将外侧外环对应的多边形标记为外侧多边形,将另一个标记为内侧多边形;

若两外环重合,则将两个多边形均标记为内侧多边形。

优选的,上述步骤三具体判断如下:

若多边形是外侧多边形,则其有独立区域;

若多边形是内侧多边形,则判断该内侧多边形是否包含另一个多边形的某个内环的轮廓,若包含则该内侧多边形有独立区域,否则没有;

判断过程中若发现两多边形均有独立区域或两个多边形的环相交,则多边形相交。

优选的,上述步骤四具体判断如下:

若只有一个多边形有独立区域则该多边形包含另一个多边形,若两个多边形均无独立区域则两多边形重合。

优选的,上述步骤一中的外侧外环是指在包含关系中包含了另一个外环的外环。

优选的,上述步骤三中所述的独立区域是指属于一个多边形且不属于另一个多边形的区域,且该区域不能是点或线。

优选的,上述步骤一具体包括:

步骤1.1、两环求交,若两环全交则两环重合,到步骤1.6;

步骤1.2、判断各交点处是否为交叉相交;若是则两个环相交,到步骤1.6;

步骤1.3、得到两个环各自的所有非交段;

步骤1.4、采点法判断第一个环的各非交段与第二个环的位置关系;若同时存在在第二个环内的非交段和第二个环外的非交段则两环相交,到步骤1.6;若非交段全在第二个环内则第二个环包含第一个环,到步骤1.6;

步骤1.5、分辨包含和相离,依次以采点法判断第二个环的非交段与第一个环的位置关系,若存在位于第一个环内的非交段,则第一个环包含第二个环;若存在位于第一个环外的非交段,则两环相离;

步骤1.6、判断结束。

优选的,上述步骤1.1中,两环全交是指求交得到的交点交段完全覆盖两环。

优选的,上述步骤1.2中,交叉相交的判断准则是两环在交点处的切线垂直且两环在交点两侧的长度均大于容差。

优选的,上述步骤1.4中,非交段上任意除了端点外的中间点均可以作为采样法的采样点。

一种多边形与多边形位置关系判断系统,包括:

多边形定义单元,用于判断外环之间的位置关系,包括但不限于相离、相交、包含和重合,根据不同位置关系定义为外侧多边形及内侧多边形;

位置关系判断单元,用判断外侧多边形内环与内侧多边形外环的位置关系,若外侧多边形内环包含内侧多边形外环或两者重合,则两多边形相离;若两环相交,则多边形相交;

独立区域检测单元,用于检测是否有独立区域存在情况;

位置关系推断单元,用于根据独立区域情况推断两多边形位置关系;

结果输出单元,用于判断结束并输出结果。

优选的,上述多边形定义单元具体判断如下:

若两外环相离则两多边形相离;

若两外环相交则两多边形相交;

若两外环是包含关系则将外侧外环对应的多边形标记为外侧多边形,将另一个标记为内侧多边形;

若两外环重合,则将两个多边形均标记为内侧多边形。

优选的,上述独立区域检测单元具体判断如下:

若多边形是外侧多边形,则其有独立区域;

若多边形是内侧多边形,则判断该内侧多边形是否包含另一个多边形的某个内环的轮廓,若包含则该内侧多边形有独立区域,否则没有;

判断过程中若发现两多边形均有独立区域或两个多边形的环相交,则多边形相交。

优选的,上述位置关系推断单元具体判断如下:

若只有一个多边形有独立区域则该多边形包含另一个多边形,若两个多边形均无独立区域则两多边形重合。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

与现有技术相比,本发明解决了稳定高效判断两单连通流形曲边多边形位置关系的问题。由于现有的技术均只能处理点与多边形位置关系的情况,无法处理两多边形位置关系的情况。本方法采用环环环位置关系推断出多边形与多边形位置关系,方法简单可靠,可分辨出相交、相离、包含以及重合四种位置关系,环环位置关系判断基于交点处交叉相交判断和采点法,算法简单,计算效率高。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为两外环相离的两多边形位置关系示意图;

图2为两外环相交的两多边形位置关系示意图;

图3为外侧多边形内环包含内侧多边形外环的两多边形位置关系示意图;

图4为两外环是包含关系时两多边形均有独立区域示意图;

图5为两外环重合时两多边形均有独立区域示意图;

图6为两外环是包含关系时仅有一个多边形有独立区域示意图;

图7为两外环重合时仅有一个多边形有独立区域示意图;

图8为两多边形重合示意图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

如图1所示,本实施例提供一种多边形与多边形位置关系判断方法,通过输入的数字图形文件,数字图形包括两外环,判断方法包括:

步骤一、判断外环之间的位置关系,包括但不限于相离、相交、包含和重合,根据不同位置关系定义为外侧多边形及内侧多边形;

步骤二、判断外侧多边形内环与内侧多边形外环的位置关系,若外侧多边形内环包含内侧多边形外环或两者重合,则两多边形相离;若两环相交,则多边形相交;

步骤三、检测是否有独立区域存在情况;

步骤四、根据独立区域情况推断两多边形位置关系;

步骤五、判断结束并输出结果。

在一些实施例中,述步骤一具体判断如下:

若两外环相离则两多边形相离;

若两外环相交则两多边形相交;

若两外环是包含关系则将外侧外环对应的多边形标记为外侧多边形,将另一个标记为内侧多边形;

若两外环重合,则将两个多边形均标记为内侧多边形。

在一些实施例中,述步骤三具体判断如下:

若多边形是外侧多边形,则其有独立区域;

若多边形是内侧多边形,则判断该内侧多边形是否包含另一个多边形的某个内环的轮廓,若包含则该内侧多边形有独立区域,否则没有;

判断过程中若发现两多边形均有独立区域或两个多边形的环相交,则多边形相交。

在一些实施例中,述步骤四具体判断如下:

若只有一个多边形有独立区域则该多边形包含另一个多边形,若两个多边形均无独立区域则两多边形重合。

在一些实施例中,述步骤一中所述的外侧外环是指在包含关系中包含了另一个外环的外环。

在一些实施例中,述步骤三中所述的独立区域是指属于一个多边形且不属于另一个多边形的区域,且该区域不能是点或线。

在一些实施例中,述步骤一具体包括:

步骤1.1、两环求交,若两环全交则两环重合,到步骤1.6;

步骤1.2、判断各交点处是否为交叉相交;若是则两个环相交,到步骤1.6;

步骤1.3、得到两个环各自的所有非交段;

步骤1.4、采点法判断第一个环的各非交段与第二个环的位置关系;若同时存在在第二个环内的非交段和第二个环外的非交段则两环相交,到步骤1.6;若非交段全在第二个环内则第二个环包含第一个环,到步骤1.6;

步骤1.5、分辨包含和相离,依次以采点法判断第二个环的非交段与第一个环的位置关系,若存在位于第一个环内的非交段,则第一个环包含第二个环;若存在位于第一个环外的非交段,则两环相离;

步骤1.6、判断结束。

在一些实施例中,述步骤1.1中,两环全交是指求交得到的交点交段完全覆盖两环。

在一些实施例中,述步骤1.2中,交叉相交的判断准则是两环在交点处的切线垂直且两环在交点两侧的长度均大于容差。

在一些实施例中,述步骤1.4中,非交段上任意除了端点外的中间点均可以作为采样法的采样点。

本发明提供一种实施例,一种稳定高效的多边形与多边形位置关系判断方法:

包括如下步骤:

步骤一:判断外环位置关系;

若两外环相离则两多边形相离。若两外环相交则两多边形相交。若两外环是包含关系则将外侧外环对应的多边形标记为外侧多边形,将另一个标记为内侧多边形。若两外环重合,则将两个多边形均标记为内侧多边形。

步骤二:判断外侧多边形内环与内侧多边形外环的位置关系

若外侧多边形内环包含内侧多边形外环或两者重合,则两多边形相离。若两环相交,则多边形相交。

步骤三:检测独立区域存在情况

若多边形是外侧多边形,则其有独立区域。若多边形是内侧多边形,则判该该内侧多边形是否包含另一个多边形的某个内环的轮廓,若包含则该内侧多边形有独立区域,否则没有。判断过程中若发现两多边形均有独立区域或两个多边形的环相交,则多边形相交。

步骤四:根据独立区域情况推断两多边形位置关系

若只有一个多边形有独立区域则该多边形包含另一个多边形,若两个多边形均无独立区域则两多边形重合。

步骤五:判断完毕。

本发明提供一种实施例,一种稳定高效的多边形与多边形位置关系判断方法:

步骤一:设置当前边为多边形边集合的第一条边;

步骤二:曲线与当前边求交;

步骤三:判断是否有交,如果是,到步骤四,否,判断当前边是否为最后一条,如果是,到步骤六,否,设置当前边为下一条边,到步骤二;

步骤四:判断是否为交叉相交,是则返回相交,结束,否,到步骤五

步骤五:进行求交过程中的采样判断,在采样过程中判断是否能得出相交结论,如果是,关系为相交,结束,否,记录采样点与多边形位置关系的情况,判断目标边是否为边集合的最后一条边,如果是,到步骤六,否,将当前边设置为当前边的下一条边,到步骤二;

步骤六:进行最终的采样判断。

本发明提供一种实施例,一种稳定高效的多边形与多边形位置关系判断系统,包括:

多边形定义单元,用于判断外环之间的位置关系,包括但不限于相离、相交、包含和重合,根据不同位置关系定义为外侧多边形及内侧多边形;

位置关系判断单元,用判断外侧多边形内环与内侧多边形外环的位置关系,若外侧多边形内环包含内侧多边形外环或两者重合,则两多边形相离;若两环相交,则多边形相交;

独立区域检测单元,用于检测是否有独立区域存在情况;

位置关系推断单元,用于根据独立区域情况推断两多边形位置关系;

结果输出单元,用于判断结束并输出结果。

在一些实施例中,多边形定义单元具体判断如下:

若两外环相离则两多边形相离;

若两外环相交则两多边形相交;

若两外环是包含关系则将外侧外环对应的多边形标记为外侧多边形,将另一个标记为内侧多边形;

若两外环重合,则将两个多边形均标记为内侧多边形。

在一些实施例中,独立区域检测单元具体判断如下:

若多边形是外侧多边形,则其有独立区域;

若多边形是内侧多边形,则判断该内侧多边形是否包含另一个多边形的某个内环的轮廓,若包含则该内侧多边形有独立区域,否则没有;

判断过程中若发现两多边形均有独立区域或两个多边形的环相交,则多边形相交。

在一些实施例中,位置关系推断单元具体判断如下:

若只有一个多边形有独立区域则该多边形包含另一个多边形,若两个多边形均无独立区域则两多边形重合。

本发明提供一种实施例,提供了一种多边形与多边形位置关系判断方法,包括:

步骤一:判断polygon1的外环loop1与polygon2的外环loop2的位置关系

以某实施例为例,loop1与loop2求交。

图1,图3,图4和图6中两环无交。图5,图7和图8中两环全交则两环重合。图2中有两个交点p1和p2,p1和p2处两环切线方向均不垂直,所以不是交叉相交。得到loop1的所有非交段和loop2的所有非交段。图2中loop1的非交段是loop1_p1p2和loop1_p2p1,loop1_p1p2表示点p1沿loop1正向运动到p2所经过的那段曲线,loop2的非交段是loop2_p1p2和loop2_p2p1。图1,图3,图4和图6中两环无交,非交段为环自身。依次判断loop1的非交段与loop2的位置关系。图2中loop1_p1p2的中间点m1在loop2内,loop1_p2p1的中间点m2在loop2外,同时存在内部段和外部段,两环相交。图3,图4和图6中loop2的中间点m1在loop1内,且无外部段,loop1包含loop2。图1中loop1非交段loop1的中间点m1在loop2外,loop2的非交段的中间点m2在loop1外,环环相离。

步骤二:判断外侧多边形内环与内侧多边形外环的位置关系

图3中外侧多边形polygon1的内环loop3包含内侧多边形polygon2的外环loop2,两多边形相离。

步骤三:检测独立区域存在情况

图4和图6中polygon1是外侧多边形,有独立区域,polygon2是内侧多边形,需判断是否有独立区域。图4中polygon2区域中包含了polygon1的内环loop3轮廓,polygon2有独立区域。图6中polygon1无内环,polygon2无独立区域。图5,图7和图8中外环重合,polygon1和polygon2均为内侧多边形。图5中polygon1包含polygon2的内环loop4的轮廓,polygon2包含polygon1的内环loop3的轮廓,两多边形均有独立区域。图7中polygon1区域中包含polygon2内环loop3的轮廓,polygon1有独立区域,polygon1无内环则polygon2无独立区域,图8中,两多边形均不包含另一个多边形的内环轮廓,两多边形均无独立区域。

步骤四:根据两多边形独立区域存在情况推断两多边形位置关系

如图4和图5中polygon1和polygon2均有独立区域,两多边形相交。如图6和图7中polygon1有独立区域polygon2无独立区域,polygon1包含polygon2。如图8中两多边形均无独立区域,两多边形重合。

此外,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

此外,还可以提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。

与现有技术相比,本发明突出基于标准科目指标的成本测算,包括测算的具体方法、自动沉淀积累数据形成指标库、多维度查询历史数据进行引用,标准数据接口支持与其他成本系统集成应用。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1