基于网格生成路径的方法与流程

文档序号:11293267阅读:374来源:国知局
基于网格生成路径的方法与流程

本发明涉及导路领域,是一种应用于导购系统的基于网格生成路径的方法。



背景技术:

随着经济的不断发展,人们的生活水平和生活方式不断进步,消费水平不断上涨,主要的消费场所“购物商场”,也正向着集成化、大型化的方向发展。然而,商场占地面积的不断扩大化,也给消费者造成了诸多不便,其中最为直接的就是寻路难度加大,使消费者较难在短时间内找到想要的品牌或商品。为解决该问题,大型商场通常会安装互动导购系统,以方便消费者更好地了解商场的形象、楼层平面、商户分布、商户分类检索、商户介绍、活动信息、会员章程、积分查询等信息。而且随着触摸一体机的推广,国内的互动导购系统开始逐步兴起并发展起来。商场互动导购系统解决的最主要问题是查询从当前位置到目标店铺的路径规划,现有互动导购系统的路径规划通常采用了路径点穷举的方式,以商场为例,需要在商场的地形图中各条路的分岔位置、各个店铺门口,以及店铺位置均标注路径点,再将这些路径点一一输入至导购系统中,从而生成一张路径网。由此可见,要生成一张贯穿整个地形图的路径点,是一项相当复杂且繁琐的工作,该操作需要花费大量的人工和时间来实现,并且不易被商场的管理人员所掌握,专业性极强,这也决定了当前商场互动导购系统定制化程度高、通用性差,不易维护更新的缺点。为此,有待对现有商场导购系统的路径规划方法进行改进。



技术实现要素:

为克服上述不足,本发明设计一种基于网格生成路径的方法,使其解决现有路径规划采用路径点穷举的方式,较为繁琐,通用性差,专业性强不易维护管理的技术问题。其采用如下技术方案实现。

一种基于网格生成路径的方法,其包括如下步骤:

一、生成网格数据,通过描绘场地平面轮廓,并根据平面轮廓划分为通行平面区域和非通行平面区域,对通行平面区域根据“delaunay三角剖分”算法自动构建三角网格;

二、形成三角网格通路,根据起始点和目标点所在三角网格,结合a*寻路算法,得到起始点至目标点的三角网格通路;

三、根据拐角点算法形成初始路径,首先,以起始点至目标点所经过三角网格为顺序依次确定“临边”的顺序,临边为相邻三角网格之间的公共边;其次,临边的两个端点以临边逆时针旋转时接近所述起始点的端点为左端点,远离起始点的端点为右端点,所述起始点所在三角网格的临边为起始临边,所述目标点所在三角网格的临边为末端临边;接下来按临边顺序,依次将起始临边之后的各临边的两个端点与所述起始点进行位置比较确定拐点,过程为:起始临边的左端点、右端点均与起始点连线,并形成第一个平面夹角,其中左端点与起始点的连线称为左夹角线,右端点与起始点的连线称为右夹角线;判定第二条临边的左端点、右端点相对于平面夹角的位置状态,如果第二条临边的左端点位于平面夹角范围内,则第二条临边的左端点作为连接起始点的新的左端点,删除起始临边的左端点与起始点的左夹角线,更新为第二条临边的左端点与起始点的新的左夹角线;如果第二条临边的左端点位于平面夹角范围外,且位于左夹角线的外侧,则保留起始临边的左端点与起始点的左夹角线;如果第二条临边的右端点位于平面夹角范围内,则第二条临边的右端点作为连接起始点的新的右端点,删除起始临边的右端点与起始点的右夹角线,更新为第二条临边的右端点与起始点的新的右夹角线;如果第二条临边的右端点位于平面夹角范围外,且位于右夹角线的外侧,则保留起始临边的右端点与起始点的右夹角线;继续比较第三条临边的两个端点,且比较第三条临边两个端点位置状态时,是以第二条临边两个端点比较后所形成的新的平面夹角为比较对象,以这样的方式依次比较后续临边的两个端点;

上述比较过程中,如果出现:当后一临边的左端点、右端点均位于所参照的平面夹角范围外,且位于左夹角线的外侧时,则该平面夹角所参照的左端点作为一个拐点;当后一临边的左端点、右端点均位于所参照的平面夹角范围外,且位于右夹角线的外侧时,则该平面夹角所参照的右端点作为一个拐点;当后一临边为末端临边时,根据目标点相对于该末端临边所参照的平面夹角范围形成如下三种状态:目标点位于该参照平面夹角范围内时,则目标点直接与前一个拐点连接;目标点位于该参照平面夹角范围外,且位于左夹角线外侧时,该参照平面夹角所对应的左端点作为一个拐点,其与目标点直线连接;当目标点位于参照平面夹角范围外,且位于右夹角线外侧时,该参照平面夹角所对应的右端点作为一个拐点,其与目标点直线连接;

当得到一个拐点后,则以该拐点重新作为新的起始点,以上述方式继续找出下一拐点,直至下一拐点与目标点之间不再存在拐点时,将起始点、各拐点、目标点依次直线连接,即形成初始路径;

上述方法还包括步骤四,包括步骤四,根据直线视线检测法去除上述初始路径中多余的路径点,对上述起始点、拐点、目标点分别按顺序进行排序形成一个点序列,在点序列中,当起始点与第三个点所连成的线段未完全落入上述步骤二所形成的三角网格通路内时,继续判定第二个点与第四个点所连成的线段是否落入上述步骤二所形成的三角网格通路内,如果未完全落入,则继续判定第三个点与第五个点所连成的线段是否落入上述步骤二所形成的三角网格通路内,以次类推;当所述起始点与第三个点所连成的线段完全落入上述步骤二所形成的三角网格通路内时,则去除点序列中的第二个点,继续判定起始点与第四个点所连成的线段是否落入上述步骤二所形成的三角网格通路内,如果完全落入,则去除点序列中的第三个点,如果未完全落入,则以第三个点作为新的起始点,继续以上述方式判定后续的点,直至去除初始路径中多余的路径点,去除多余的路径点后,剩余路径点依次直线连接,即生成最终的路径。

上述基于网格生成路径的方法中,所述步骤一由人工绘制场地轮廓并输入编程系统中,由软件系统自动识别轮廓后构建形成三角网格,步骤二至步骤四由软件系统按预设程序执行完成。

通过上述方法,将复杂繁琐的路径点手动标注输入替换为由软件系统根据人工绘制的场地轮廓在通行区域自动生成三角网格,并由系统根据预设程序将三角网格自动生成路径,大幅减少了工作量,降低了操作人员的专业性要求,且软件脱离了高度定制化,通用性强,便于二次开发使用,具有较好的应用前景。

附图说明

图1是本发明根据场地轮廓对通行区域自动生成三角网格的示意图。

图2是本发明步骤三的状态结构示意图,图中虚线表示路径,粗实线表示临边。

图中序号及名称为:1、三角网格,2、起始点,3、临边,301、起始临边,302、末端临边,4、左端点,5、右端点,6、左夹角线,7、右夹角线,8、拐点,9、目标点。

具体实施方式

现结合附图,对本发明作如下描述。

该基于网格生成路径的方法,主要分为以下步骤:

步骤一,如图1所示,首先通过人工根据商场实际大小按缩放比例绘制商场导购平面轮廓图,由软件系统自动对该商场导购平面轮廓图进行识别,将该商场导购平面轮廓图划分为通行平面区域和非通行平面区域,对通行平面区域根据“delaunay三角剖分”算法自动构建三角网格1。“delaunay三角剖分”算法是现有已知算法,简单的说是指在给定平面中的n个点,用不相交的直线段连接它们,以致范围内的每个区域都是一个三角形,且细长、尖锐的三角形越少,等边三角形及近似等边的三角形越多,整体三角形网格以均匀为佳。

步骤二,形成三角网格通路。根据起始点2和目标点9所在三角网格1,结合a*寻路算法,得到起始点2至目标点9的三角网格通路。a*寻路算法是属于现有寻路里一种常规的算法,故不作详细表述,仅简单表述其原理:a*算法使用的估价方式为f(n)=g(n)+h(n)。其中g(n)表示从起点到任意节点n的路径花费,h(n)表示从节点n到目标节点路径花费的估计值启发值。a*算法在物体移动的同时平衡g(n)和h(n)两者的值,每次都选取邻接节点中f(n)值最小的节点作为下一个节点。

步骤三,根据拐角点算法形成初始路径。首先,以起始点2至目标点9所经过三角网格1为顺序依次确定“临边3”的顺序,临边为相邻三角网格之间的公共边,其次,临边的两个端点以临边逆时针旋转时接近起始点的端点为左端点4,远离起始点的端点为右端点5,起始点所在三角网格的临边为起始临边301,目标点所在三角网格的临边为末端临边;接下来按临边3顺序,依次将起始临边301之后的各临边的两个端点与起始点进行位置比较确定拐点8,具体过程为:起始临边301的左端点4、右端点5均与起始点2连线,并形成第一个平面夹角,其中左端点4与起始点2的连线称为左夹角线6,右端点5与起始点2的连线称为右夹角线7;判定第二条临边的左端点、右端点相对于平面夹角的位置状态,如果第二条临边的左端点位于平面夹角范围内,则第二条临边的左端点作为连接起始点的新的左端点,删除起始临边的左端点与起始点的左夹角线,更新为第二条临边的左端点与起始点的新的左夹角线;如果第二条临边的左端点位于平面夹角范围外,且位于左夹角线的外侧,则保留起始临边的左端点与起始点的左夹角线;如果第二条临边的右端点位于平面夹角范围内,则第二条临边的右端点作为连接起始点的新的右端点,删除起始临边的右端点与起始点的右夹角线,更新为第二条临边的右端点与起始点的新的右夹角线;如果第二条临边的右端点位于平面夹角范围外,且位于右夹角线的外侧,则保留起始临边的右端点与起始点的右夹角线;继续比较第三条临边的两个端点,且比较第三条临边两个端点位置状态时,是以第二条临边两个端点比较后所形成的新的平面夹角为比较对象,以这样的方式依次比较后续临边的两个端点;

上述比较过程中,如果出现:当后一临边的左端点、右端点均位于所参照的平面夹角范围外,且位于左夹角线的外侧时,则该平面夹角所参照的左端点作为一个拐点8;当后一临边的左端点、右端点均位于所参照的平面夹角范围外,且位于右夹角线的外侧时,则该平面夹角所参照的右端点作为一个拐点;当后一临边为末端临边302时,根据目标点相对于该末端临边所参照的平面夹角范围形成如下三种状态:目标点位于该参照平面夹角范围内时,则目标点直接与前一个拐点连接;目标点位于该参照平面夹角范围外,且位于左夹角线外侧时,该参照平面夹角所对应的左端点作为一个拐点,其与目标点直线连接;当目标点位于参照平面夹角范围外,且位于右夹角线外侧时,该参照平面夹角所对应的右端点作为一个拐点,其与目标点直线连接;

当得到一个拐点8后,则以该拐点重新作为新的起始点,以上述方式继续找出下一拐点,直至下一拐点与目标点之间不再存在拐点时,将起始点、各拐点、目标点依次直线连接,即形成初始路径。

结合图2,对步骤三进行具体举例说明:如图2所示,起始临边301的左端点4和右端点5均与起始点2连线分别形成左夹角线6和右夹角线7,左夹角线和右夹角线之间形成第一个平面夹角a;第二条临边的左端点、右端点均位于该平面夹角内,则更新为第二条临边的左端点、右端点与起始点连线形成新的左夹角线、右夹角线(其中右夹角线与起始右夹角线为同一条);第三条临边的左端点位于前一临边所参照的平面夹角范围内,右端点位于该平面夹角范围外,且位于右夹角线外侧,故第三条临边的左端点与起始点连线更新为新的左夹角线,右夹角线不更新;第四条临边的左端点位于前一临边所参照的平面夹角范围内,右端点位于该平面夹角范围外,且位于右夹角线外侧,故第四条临边的左端点与起始点连线更新为新的左夹角线,右夹角线不更新;第五条临边的左端点、右端点均位于前一临边所参照的平面夹角范围内,故第五条临边的左端点、右端点分别与起始点连线更新为新的左夹角线、右夹角线;第六条临边的左端点位于前一临边所参照的平面夹角范围外,右端点位于前一临边所参照的平面夹角范围内,故第六条临边的右端点与起始点连线更新为新的右夹角线(该新的右夹角线与前一右夹角线为同一条);第七条临边的左端点、右端点均位于前一临边所参照的平面夹角范围外,且位于该平面夹角的左夹角线外侧,故前一临边所参照的平面夹角的左端点(第五条临边的左端点)作为一个拐点8;以该拐点作为起始点,以第六条临边的左端点、右端点与该拐点连接形成新的平面夹角b,第七条临边的左端点、右端点均位于该平面夹角b范围内,故第七条临边的左端点、右端点与该新的起始点连接更新为新的左夹角线、右夹角线,形成新的平面夹角;第八条临边为末端临边,目标点位于该末端临边所参照平面夹角的范围外,且位于该平面夹角的左夹角线外侧,故该平面夹角的左端点(第七条临边的左端点)作为一个拐点,该拐点与目标点直线连接,最终得到图中虚线所示的初始路径。

步骤四,根据直线视线检测法去除上述初始路径中多余的路径点,即:对上述起始点、拐点、目标点分别按顺序进行排序形成一个点序列,在点序列中,当起始点与第三个点所连成的线段未完全落入上述步骤二所形成的三角网格通路内时,继续判定第二个点与第四个点所连成的线段是否落入上述步骤二所形成的三角网格通路内,如果未完全落入,则继续判定第三个点与第五个点所连成的线段是否落入上述步骤二所形成的三角网格通路内,以次类推;当所述起始点与第三个点所连成的线段完全落入上述步骤二所形成的三角网格通路内时,则去除点序列中的第二个点,继续判定起始点与第四个点所连成的线段是否落入上述步骤二所形成的三角网格通路内,如果完全落入,则去除点序列中的第三个点,如果未完全落入,则以第三个点作为新的起始点,继续以上述方式判定后续的点,直至去除初始路径中多余的路径点。例如:假设起始点、拐点、目标点依次形成点序列为a、b、c、d、e,若ac连线的线段落入三角网格通路内,则路径中的b点可以删除优化,再对ad连线的线段进行判断是否落入三角网格通路内,如果ad线段落入三角网格通路内,则路径中的c点可以删除优化;如果ad线段未完全落入三角网格通路内,则取c点作为新的起始点,按照之前判断ac线段的方式继续判断ce连线的线段是否落入三角网格通路内,完全落入,则路径中的d点可以删除优化。依次类推,去除多余的路径点后,剩余路径点依次直线连接,即生成最终的路径。

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