本发明专利技术实施例提供一种分解环套多边形的方法和制图装置,环套多边形内部存在至少一个简单多边形;环套多边形外部的所有边界点构成外环,每一个简单多边形的所有边界点构成内环;方法包括:计算出外环的各个最值坐标;获取切割线切割内环之后在内环边界上形成的交点,根据各个交点计算出各个内环的内点,内点是相邻两个交点的中心点;基于内点和最值坐标,通过增加辅助点创建切割多边形,切割多边形贯穿所有的内环;切割多边形与环套多边形进行布尔运算对环套多边形分解,得到简单多边形。采用算法分解环套多边形而无需人工参与,整个流程均是自动处理因而操作简单,采用布尔运算分解,极大降低了切割环套多边形后形成的简单多边形的个数。
【技术实现步骤摘要】
一种分解环套多边形的方法和制图装置
本专利技术涉及数字制图技术,特别是指一种分解环套多边形的方法和制图装置。
技术介绍
导航电子地图制图技术中,会使用环套多边形表示道路面、河流、海洋和岛屿,而电子地图的物理格式无法支持环套多边形。现有技术中,使用第三方程序的一些功能,通过若干个步骤组合最终将环套多边形分解为若干个三角形。现有技术存在如下问题:第三方程序的功能难以融入NDS编译工具体系,PDH编译过程作为NDS编译工具体系的一部分,需要人工干预,操作复杂导致转换速度较慢;产生的简单多边形过多,无法验证是否正确。
技术实现思路
本专利技术要解决的技术问题是提供一种分解环套多边形的方法和制图装置,解决现有编译过程需要人工干预,操作复杂导致转换速度较慢的缺陷。为解决上述技术问题,本专利技术的实施例提供一种分解环套多边形的方法,环套多边形内部存在至少一个简单多边形;环套多边形外部的所有边界点构成外环,每一个简单多边形的所有边界点构成内环;方法包括:计算出外环的各个最值坐标;获取切割线切割内环之后在内环边界上形成的交点,根据各个交点计算出各个内环的内点,所述内点是相邻两个交点的中心点;基于所述内点和最值坐标,通过增加辅助点创建切割多边形,所述切割多边形贯穿所有的内环;所述切割多边形与环套多边形进行布尔运算对环套多边形分解,得到简单多边形。所述的方法中,计算出外环的各个最值坐标包括:计算出所述外环的最小横坐标minX,最小竖坐标minY,最大横坐标maxX和最大竖坐标maxY。所述的方法中,获取切割线切割内环之后在内环边界上形成的交点包括:获取包围了所述内环的内环包围盒,所述内环包围盒是矩形,根据所述内环的四个最值坐标形成;在所述内环包围盒的长轴方向的中间位置处设置切割线;切割线切割内环形成各个交点;按照Y轴排序各个交点生成交点序列{Y1,Y2,…,Yn};将相邻交点两两配为一对。所述的方法中,根据各个交点计算出各个内环的内点,所述内点是相邻两个交点的中心点,具体包括:当同一个内环存在多对交点时,任意一对交点的中点都在简单多边形的内部,取两个交点之间的距离最长的这一对交点的中心点作为所述内点。所述的方法中,基于所述内点和最值坐标,通过增加辅助点创建切割多边形,具体包括:当相邻的最值坐标和内点之间无法形成与环套多边形所在坐标系的X轴或者Y轴平行的直线时,在相邻最值坐标/内点之间增加辅助点后,所述辅助点应当与相邻的最值坐标处于一条直线上,且与相邻的内点处于一条直线上,且不同的直线均应当平行于X轴或者Y轴;连接各个最值坐标、内点和辅助点形成所述切割多边形。所述的方法中,所述切割多边形与环套多边形进行布尔运算对环套多边形分解,得到简单多边形,具体包括:切割多边形与环套多边形做交集形成多个简单多边形,以及,切割多边形与环套多边形做差集形成多个简单多边形。一种制图装置,环套多边形内部存在至少一个简单多边形;环套多边形外部的所有边界点构成外环,每一个简单多边形的所有边界点构成内环;装置包括:最值单元,用于计算出外环的各个最值坐标;交点单元,用于获取切割线切割内环之后在内环边界上形成的交点,根据各个交点计算出各个内环的内点,所述内点是相邻两个交点的中心点;切割多边形单元,用于基于所述内点和最值坐标,通过增加辅助点创建切割多边形,所述切割多边形贯穿所有的内环;布尔运算单元,用于所述切割多边形与环套多边形进行布尔运算对环套多边形分解,得到简单多边形。所述的装置中,交点单元包括:内环包围盒模块,用于获取包围了所述内环的内环包围盒,所述内环包围盒是矩形,根据所述内环的四个最值坐标形成;长轴定位模块,用于在所述内环包围盒的长轴方向的中间位置处设置切割线;切割执行模块,用于采用切割线切割各个内环形成各个交点;交点配对模块,用于按照Y轴排序交点生成交点序列{Y1,Y2,…,Yn};将相邻交点两两配为一对。所述的装置中,切割多边形单元包括:辅助点设置模块,用于当相邻的最值坐标和内点之间无法形成与环套多边形所在坐标系的X轴或者Y轴平行的直线时,在相邻最值坐标/内点之间增加辅助点后,所述辅助点应当与相邻的最值坐标处于一条直线上,且与相邻的内点处于一条直线上,且不同的直线均应当平行于X轴或者Y轴;切割多边形形成模块,用于连接各个最值坐标、内点和辅助点形成所述切割多边形。所述的装置中,布尔运算单元包括:交集运算模块,用于切割多边形与环套多边形做交集形成多个简单多边形;差集运算模块,用于切割多边形与环套多边形做差集形成多个简单多边形。本专利技术的上述技术方案的有益效果如下:采用算法分解环套多边形而无需人工参与,因此处理速度快,整个流程均是自动处理因而操作简单,采用布尔运算分解,可以验证是否转换正确,极大降低了切割环套多边形后形成的简单多边形的个数,减少了编译时间。附图说明图1表示简单多边形的示意图;图2表示环套多边形的示意图;图3表示计算外环的最值坐标;图4表示创建切割多边形的示意图;图5表示切割多边形与环套多边形进行布尔运算的示意图;图6表示一种分解环套多边形的方法的流程示意图;图7表示基于环套多边形形成多个简单多边形的流程示意图。具体实施方式为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。简单多边形,如图1所示,二维平面中存在点P[1],P[2],…,P[n],n>=3,所有相邻的点依次连接,且P[n]与P[1]连接,围成的区域是简单多边形。环套多边形,如图2所示,在一个多边形内部存在至少一个简单多边形的图形是环套多边形。本专利技术实施例中,建立一个穿过所有内环的切割多边形,切割多边形与环套多边形之间通过布尔运算得到一系列的简单多边形。本专利技术实施例提供一种分解环套多边形的方法,环套多边形如图2所示,内部存在至少一个简单多边形;环套多边形外部的所有边界点构成外环,每一个简单多边形的所有边界点构成内环;方法如图6所示,包括:步骤61,计算出外环的各个最值坐标;步骤62,获取切割线切割内环之后在内环边界上形成的交点,根据各个交点计算出各个内环的内点,所述内点是相邻两个交点的中心点;步骤63,基于所述内点序列和最值坐标,通过增加辅助点创建切割多边形,所述切割多边形贯穿所有的内环;步骤64,所述切割多边形与环套多边形进行布尔运算对环套多边形分解,得到简单多边形。应用所提供的技术,采用算法分解环套多边形而无需人工参与,因此处理速度快,整个流程均是自动处理因而操作简单,采用布尔运算分解,可以验证是否转换正确,极大降低了切割环套多边形后形成的简单多边形的个数,减少了编译时间。在一个优选实施例中,如图3所示,计算出外环的各个最值坐标包括:计算外环的最小横坐标minX,最小竖坐标minY,最大横坐标maxX和最大竖坐标maxY。根据四个最值坐标能够形成外环包围盒,外环包围盒是一个矩形,其四个顶点由四个最值坐标组合形成,分别是:(最小横坐标minX,最小竖坐标minY),(最小横坐标minX,最大竖坐标maxY),(最大横坐标maxX,最小竖坐标minY),(最大横坐标maxX,最大竖坐标maxY)。计算内环所有的内点的过程中,需要预先设定内环所在的内环包围盒的一个长轴,不失一般性,假设X轴为长轴。在一个优选实施例中,如图3所本文档来自技高网...

【技术保护点】
一种分解环套多边形的方法,其特征在于,环套多边形内部存在至少一个简单多边形;环套多边形外部的所有边界点构成外环,每一个简单多边形的所有边界点构成内环;方法包括:计算出外环的各个最值坐标;获取切割线切割内环之后在内环边界上形成的交点,根据各个交点计算出各个内环的内点,所述内点是相邻两个交点的中心点;基于所述内点和最值坐标,通过增加辅助点创建切割多边形,所述切割多边形贯穿所有的内环;所述切割多边形与环套多边形进行布尔运算对环套多边形分解,得到简单多边形。
【技术特征摘要】
1.一种分解环套多边形的方法,其特征在于,环套多边形内部存在至少一个简单多边形;环套多边形外部的所有边界点构成外环,每一个简单多边形的所有边界点构成内环;所述方法应用于导航地图标准库编译工具体系中,所述方法包括:计算出外环的各个最值坐标;获取切割线切割内环之后在内环边界上形成的交点,根据各个交点计算出各个内环的内点,所述内点是同一内环中两个交点之间的距离最长的一对交点的中心点;基于所述内点和最值坐标,通过增加辅助点创建切割多边形,所述切割多边形贯穿所有的内环,其中,当相邻的最值坐标和内点之间无法形成与环套多边形所在坐标系的X轴或者Y轴平行的直线时,在相邻最值坐标/内点之间增加辅助点,所述辅助点与相邻的最值坐标处于一条直线上,且与相邻的内点处于一条直线上,且不同的直线均平行于X轴或者Y轴,连接各个最值坐标、内点和辅助点形成所述切割多边形;所述切割多边形与环套多边形进行布尔运算对环套多边形分解,得到简单多边形。2.根据权利要求1所述的方法,其特征在于,计算出外环的各个最值坐标包括:计算出所述外环的最小横坐标minX,最小竖坐标minY,最大横坐标maxX和最大竖坐标maxY。3.根据权利要求1所述的方法,其特征在于,获取切割线切割内环之后在内环边界上形成的交点包括:获取包围了所述内环的内环包围盒,所述内环包围盒是矩形,根据所述内环的四个最值坐标形成;在所述内环包围盒的长轴方向的中间位置处设置切割线;切割线切割内环形成各个交点;按照Y轴排序各个交点生成交点序列{Y1,Y2,…,Yn};将相邻交点两两配为一对。4.根据权利要求1所述的方法,其特征在于,所述切割多边形与环套多边形进行布尔运算对环套多边形分解,得到简单多边形,具体包括:切割多边形与环套多边形做交集形成多个简单多边形,以及,切割多边形与环套多边形做差...
【专利技术属性】
技术研发人员:焦毅,
申请(专利权)人:北京四维图新科技股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。