[发明专利]一种地图寻路方法及系统有效
申请号: | 200810056378.8 | 申请日: | 2008-01-17 |
公开(公告)号: | CN101241507A | 公开(公告)日: | 2008-08-13 |
发明(设计)人: | 彭超 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F19/00 |
代理公司: | 北京汇泽知识产权代理有限公司 | 代理人: | 赵军;蒋雅洁 |
地址: | 518044广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 地图 方法 系统 | ||
技术领域
本发明涉及地图寻路技术,特别是指一种基于导航格的地图寻路方法及系统。
背景技术
随着网络游戏的不断发展,在基于三维(3D)场景的游戏中,经常需要实现虚拟物体在场景中的移动,在移动过程中就涉及到寻路的问题。在游戏寻路领域,A*寻路算法是一种被人们广泛使用的人工智能技术,A*寻路算法实际是一种启发式搜索,就是利用一个估价函数评估每次决策的价值,决定先尝试哪一种方案。具体而言,所谓启发式搜索,就是在当前搜索节点向下选择下一步节点时,可以通过一个启发函数来进行选择,选择代价最少的节点如距离当前节点最近的节点作为下一步搜索节点,并跳转到选定的下一步节点上,直到到达目标节点。
目前,3D场景中常用的寻路方法有:基于三角面的A*寻路方法、A*二层寻路方法。具体来说,基于三角面的A*寻路方法先要设置存放所有已探知但未搜索过的节点的打开表(Open Table),以及存放已搜索过的节点的关闭表(CloseTable);开始寻路时,自起始节点起,将每个节点作为当前节点加入Open Table,在未到达目标节点且Open Table表非空的情况下,逐一对每个当前节点寻找其可能的子节点,并计算每个子节点的估值;每次估算完就将当前节点放入CloseTable,选择下一个当前节点,之后再寻找新的当前节点的子节点,并计算每个子节点的估值,如此反复,直到输出找到的路径为止。从上述处理过程可以看出,当一个场景对应的地图由大量密集的三角面组成时,如果起始节点距离目标节点很远且基于三角面寻路,由于要存储每个已探知或已搜索过的节点,那么,搜索空间中就需要保存大量扩展出来的节点,空间开销会特别巨大,而其中有很多节点实际是无关节点,如此,不仅占用了大量不必要的空间开销,造成浪费;且会严重影响寻路的效率。
至于A*二层寻路方法,主要是在地图上创建一个低密度的菱形网格,固定选取菱形网格的中心点作为路点,先采用宏观寻路方法确定粗略路径,然后在每一段路径上使用微观寻路,但这种方法在寻路过程中采用的搜索节点是网格的中心点,在适用范围上具有一定的局限性,只能处理二维形状规则的地图,而不能用于二维或三维不规则形状的地图。
发明内容
有鉴于此,本发明的主要目的在于提供一种地图寻路方法及系统,既能节省空间占用,又能提高寻路效率,还适用于对各种形状地图的处理。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种地图寻路方法,将平面地图划分为一个以上大小相等的区域,在区域边界上生成路点;需要寻路时,先基于区域进行寻路,获得区域路径;再根据获得的区域路径基于三角面寻路,生成最终路径。
其中,所述划分区域为:采用等间距的垂直和水平线将平面地图分割为一个以上区域大小相等的方格。所述生成路点为:将所划分区域各边与平面地图所构成多边形的各边重合线段的中点作为路点。所述获得区域路径为:先确定从起点到终点途径的区域,再根据所确定区域之间的关联以及区域间的进入点,得到路点构成的区域路径。
上述方案中,所述寻路采用A*寻路算法。
上述方案中,在划分区域之前,该方法进一步包括:将三维场景对应的地图导航片投影到平面,形成平面地图。
上述方案中,所述基于区域进行寻路具体包括:先确定起点、终点以及起点和终点分别所属的划分区域,以区域为单位进行寻路。
本发明还提供了一种地图寻路系统,包括:区域生成模块、路点管理模块、寻路模块;其中,
区域生成模块,用于将多边形平面地图划分为一个以上大小相等的区域;路点生成模块,负责针对划分的每块区域,获取区域各边与多边形各边重合线段的中点作为路点,将每块区域中的路点生成路点序列,并建立路点序列内各路点之间的连通关系;寻路模块,用于采用A*寻路算法进行寻路;
寻路模块进一步包括区域寻路模块和三角面寻路模块,所述区域寻路模块以区域为单位采用A*寻路算法进行寻路,并根据途径的区域及区域间的进入点,确定由路点构成的区域路径;所述三角面寻路模块,在具体场景中采用基于三角面的A*寻路,得到最终的移动路径。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810056378.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:提高食欲的猪饲料
- 下一篇:一种生猪养殖专用饲料