确定平面多边形凹凸点的方法及系统技术方案

技术编号:25223927 阅读:51 留言:0更新日期:2020-08-11 23:13
本发明专利技术提供一种确定平面多边形凹凸点的方法及系统,方法包括以下步骤:识别GPX数据处理成面数据时围成的平面多边形的坐标方向;根据识别到的多边形坐标方向,对于顶点P

【技术实现步骤摘要】
确定平面多边形凹凸点的方法及系统
本专利技术属于GPX数据处理
,具体涉及一种确定平面多边形凹凸点的方法及系统。
技术介绍
GPX是GPS数据交换格式的简写,是一种比较小的XML(EXtensibleMarkupLanguage)数据格式,包括航点坐标等GPS信息,可在网络上传输并且支持网络服务。在获得GPX航线数据后,为将其应用于GoogleEarth(三维地球)、MapSource(garmin导航仪工具软件)等应用程序,通常需要将GPX航线数据生成面数据。其中,GPX面数据是由多个航点的二维坐标构成。在图像检测等地理信息处理时,常常需要识别面数据中每个顶点的凹凸性,然而,现有的面数据顶点凹凸性的识别方法,普遍具有识别过程复杂的问题。
技术实现思路
针对现有技术存在的缺陷,本专利技术提供一种确定平面多边形凹凸点的方法及系统,可有效解决上述问题。本专利技术采用的技术方案如下:本专利技术提供一种确定平面多边形凹凸点的方法,包括以下步骤:步骤1,识别GPX数据处理成面数据时围成的平面多边形的坐标方向,包括:步骤1.1,将GPX数据转换为面数据;其中,所述面数据包括多个顶点,每个所述顶点具有二维xy坐标;按照航迹方向,将各个所述顶点的二维坐标存入到数据库中;假设共有n个顶点,按航迹方向,依次为P1(x1,y1),P2(x2,y2),…,Pn(xn,yn);步骤1.2,遍历所述数据库中的n个顶点,查找到纵坐标y值最大的所有顶点;步骤1.3,判断y值最大的顶点是否只有一个,如果是,将y值最大的顶点记为PA(xA,yA),然后执行步骤1.5;其中,A∈(1,2,…,n);如果不是,执行步1.骤4;步骤1.4,在y值最大的各个顶点中,查找到横坐标x值最小的顶点,将查找到的顶点记为PA(xA,yA),然后执行步骤1.5;步骤1.5,在xy坐标系中标记顶点PA,然后,在顶点PA正上方标记辅助点PD(xA,yA+m);其中,m为大于0的任意数字;步骤1.6,在数据库中定位到顶点PA,然后,寻找到顶点PA前一个相邻的顶点PB(xB,yB)以及后一个相邻的顶点PC(xC,yC);其中:如果A=1,则顶点PB为数据库中的顶点Pn(xn,yn),顶点PC为数据库中的顶点P2(x2,y2);如果A=n,则顶点PB为数据库中的顶点Pn-1(xn-1,yn-1),顶点PC为数据库中的顶点P1(x1,y1);如果A=2,3,…,n-1,则顶点PB为数据库中的顶点PA-1(xA-1,yA-1),顶点PC为数据库中的顶点PA+1(xA+1,yA+1);步骤1.7,计算矢量PAPD到矢量PAPB在顺时针方向的夹角E1;计算矢量PAPD到PAPC在顺时针方向的夹角E2;步骤1.8,判断夹角E1是否大于夹角E2,如果大于,则确定由顶点P1,P2,…,Pn首尾相接围成的多边形坐标方向为顺时针;否则,确定由顶点P1,P2,…,Pn首尾相接围成的多边形坐标方向为逆时针;步骤2,根据步骤1识别到的多边形坐标方向,对于顶点P1,P2,…,Pn中的任意一个顶点Pa(xa,ya),其中,a=1,2,…,n,均采用以下方法识别平面多边形每个顶点的凹凸属性:步骤2.1,在数据库中,定位到顶点Pa的前一个顶点Pb(xb,yb)和后一个顶点Pc(xc,yc);步骤2.2,判断顶点Pa和顶点Pb的纵坐标是否相同,如果相同,则执行步骤2.3;如果不相同,则以顶点Pa为原点,计算atan2(yb,xb)的值;然后执行步骤2.4;步骤2.3,判断顶点Pb的横坐标是否小于顶点Pa的横坐标,即:判断顶点Pb是否位于顶点Pa的正左侧,如果是,则以顶点Pa为原点,直接令atan2(yb,xb)=180度;如果否,表明顶点Pb位于顶点Pa的正右侧,则以顶点Pa为原点,计算atan2(yb,xb)的值;然后执行步骤2.4;步骤2.4,判断顶点Pa和顶点Pc的纵坐标是否相同,如果相同,则执行步骤2.5;如果不相同,则以顶点Pa为原点,计算atan2(yc,xc)的值;然后执行步骤2.6;步骤2.5,判断顶点Pb的横坐标是否小于顶点Pc的横坐标,即:判断顶点Pc是否位于顶点Pa的正左侧,如果是,则以顶点Pa为原点,直接令atan2(yc,xc)=180度;如果否,表明顶点Pc位于顶点Pa的正右侧,则以顶点Pa为原点,计算atan2(yc,xc)的值;然后执行步骤2.6;步骤2.6,计算矢量PaPb到矢量PaPc在逆时针方向的夹角E3为:(180/π)(atan2(yc,xc)-atan2(yb,xb));步骤2.7,当步骤1识别到的多边形坐标方向为顺时针时,判断夹角E3是否大于180度;如果是,顶点Pa为凹点;否则,表明顶点Pa为凸点;然后在数据库中记录顶点Pa的凸凹属性;当步骤1识别到的多边形坐标方向为逆时针时,判断夹角E3是否大于180度;如果是,顶点Pa为凸点;否则,表明顶点Pa为凹点;然后在数据库中记录顶点Pa的凸凹属性。本专利技术还提供一种确定平面多边形凹凸点的系统,包括:坐标方向识别模块,用于识别GPX数据处理成面数据时围成的平面多边形的坐标方向;顶点的凹凸属性识别模块,用于根据坐标方向识别模块识别到的多边形坐标方向,对于顶点P1,P2,…,Pn中的任意一个顶点Pa(xa,ya),其中,a=1,2,…,n,均识别平面多边形每个顶点的凹凸属性。优选的,坐标方向识别模块具体用于:步骤1.1,将GPX数据转换为面数据;其中,所述面数据包括多个顶点,每个所述顶点具有二维xy坐标;按照航迹方向,将各个所述顶点的二维坐标存入到数据库中;假设共有n个顶点,按航迹方向,依次为P1(x1,y1),P2(x2,y2),…,Pn(xn,yn);步骤1.2,遍历所述数据库中的n个顶点,查找到纵坐标y值最大的所有顶点;步骤1.3,判断y值最大的顶点是否只有一个,如果是,将y值最大的顶点记为PA(xA,yA),然后执行步骤1.5;其中,A∈(1,2,…,n);如果不是,执行步1.骤4;步骤1.4,在y值最大的各个顶点中,查找到横坐标x值最小的顶点,将查找到的顶点记为PA(xA,yA),然后执行步骤1.5;步骤1.5,在xy坐标系中标记顶点PA,然后,在顶点PA正上方标记辅助点PD(xA,yA+m);其中,m为大于0的任意数字;步骤1.6,在数据库中定位到顶点PA,然后,寻找到顶点PA前一个相邻的顶点PB(xB,yB)以及后一个相邻的顶点PC(xC,yC);其中:如果A=1,则顶点PB为数据库中的顶点Pn(xn,yn),顶点PC为数据库中的顶点P2(x2,y2);如果A=n,则顶点PB为数据库中的顶点Pn-1(xn-1,yn-1),顶点PC为数据库中的顶点P1(x1,y1);如果A=2,3,…,n-1,则顶点PB为数据库中的顶本文档来自技高网...

【技术保护点】
1.一种确定平面多边形凹凸点的方法,其特征在于,包括以下步骤:/n步骤1,识别GPX数据处理成面数据时围成的平面多边形的坐标方向,包括:/n步骤1.1,将GPX数据转换为面数据;其中,所述面数据包括多个顶点,每个所述顶点具有二维xy坐标;按照航迹方向,将各个所述顶点的二维坐标存入到数据库中;/n假设共有n个顶点,按航迹方向,依次为P

【技术特征摘要】
1.一种确定平面多边形凹凸点的方法,其特征在于,包括以下步骤:
步骤1,识别GPX数据处理成面数据时围成的平面多边形的坐标方向,包括:
步骤1.1,将GPX数据转换为面数据;其中,所述面数据包括多个顶点,每个所述顶点具有二维xy坐标;按照航迹方向,将各个所述顶点的二维坐标存入到数据库中;
假设共有n个顶点,按航迹方向,依次为P1(x1,y1),P2(x2,y2),…,Pn(xn,yn);
步骤1.2,遍历所述数据库中的n个顶点,查找到纵坐标y值最大的所有顶点;
步骤1.3,判断y值最大的顶点是否只有一个,如果是,将y值最大的顶点记为PA(xA,yA),然后执行步骤1.5;其中,A∈(1,2,…,n);如果不是,执行步1.骤4;
步骤1.4,在y值最大的各个顶点中,查找到横坐标x值最小的顶点,将查找到的顶点记为PA(xA,yA),然后执行步骤1.5;
步骤1.5,在xy坐标系中标记顶点PA,然后,在顶点PA正上方标记辅助点PD(xA,yA+m);其中,m为大于0的任意数字;
步骤1.6,在数据库中定位到顶点PA,然后,寻找到顶点PA前一个相邻的顶点PB(xB,yB)以及后一个相邻的顶点PC(xC,yC);
其中:
如果A=1,则顶点PB为数据库中的顶点Pn(xn,yn),顶点PC为数据库中的顶点P2(x2,y2);
如果A=n,则顶点PB为数据库中的顶点Pn-1(xn-1,yn-1),顶点PC为数据库中的顶点P1(x1,y1);
如果A=2,3,…,n-1,则顶点PB为数据库中的顶点PA-1(xA-1,yA-1),顶点PC为数据库中的顶点PA+1(xA+1,yA+1);
步骤1.7,计算矢量PAPD到矢量PAPB在顺时针方向的夹角E1;计算矢量PAPD到PAPC在顺时针方向的夹角E2;
步骤1.8,判断夹角E1是否大于夹角E2,如果大于,则确定由顶点P1,P2,…,Pn首尾相接围成的多边形坐标方向为顺时针;否则,确定由顶点P1,P2,…,Pn首尾相接围成的多边形坐标方向为逆时针;
步骤2,根据步骤1识别到的多边形坐标方向,对于顶点P1,P2,…,Pn中的任意一个顶点Pa(xa,ya),其中,a=1,2,…,n,均采用以下方法识别平面多边形每个顶点的凹凸属性:
步骤2.1,在数据库中,定位到顶点Pa的前一个顶点Pb(xb,yb)和后一个顶点Pc(xc,yc);
步骤2.2,判断顶点Pa和顶点Pb的纵坐标是否相同,如果相同,则执行步骤2.3;如果不相同,则以顶点Pa为原点,计算atan2(yb,xb)的值;然后执行步骤2.4;
步骤2.3,判断顶点Pb的横坐标是否小于顶点Pa的横坐标,即:判断顶点Pb是否位于顶点Pa的正左侧,如果是,则以顶点Pa为原点,直接令atan2(yb,xb)=180度;如果否,表明顶点Pb位于顶点Pa的正右侧,则以顶点Pa为原点,计算atan2(yb,xb)的值;然后执行步骤2.4;
步骤2.4,判断顶点Pa和顶点Pc的纵坐标是否相同,如果相同,则执行步骤2.5;如果不相同,则以顶点Pa为原点,计算atan2(yc,xc)的值;然后执行步骤2.6;
步骤2.5,判断顶点Pb的横坐标是否小于顶点Pc的横坐标,即:判断顶点Pc是否位于顶点Pa的正左侧,如果是,则以顶点Pa为原点,直接令atan2(yc,xc)=180度;如果否,表明顶点Pc位于顶点Pa的正右侧,则以顶点Pa为原点,计算atan2(yc,xc)的值;然后执行步骤2.6;
步骤2.6,计算矢量PaPb到矢量PaPc在逆时针方向的夹角E3为:(180/π)(atan2(yc,xc)-atan2(yb,xb));
步骤2.7,当步骤1识别到的多边形坐标方向为顺时针时,判断夹角E3是否大于180度;如果是,顶点Pa为凹点;否则,表明顶点Pa为凸点;然后在数据库中记录顶点Pa的凸凹属性;
当步骤1识别到的多边形坐标方向为逆时针时,判断夹角E3是否大于180度;如果是,顶点Pa为凸点;否则,表明顶点Pa为凹点;然后在数据库中记录顶点Pa的凸凹属性。


2.一种确定平面多边形凹凸点的系统,其特征在于,包括:
坐标方向识别模块,用于识别GPX数据处理成面数据时围...

【专利技术属性】
技术研发人员:常国荣金额尔德木吐金胡格吉乐吐来全索昱
申请(专利权)人:内蒙古师范大学
类型:发明
国别省市:内蒙古;15

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1