CN109011575B - 一种自动寻路方法、装置和设备 - Google Patents
一种自动寻路方法、装置和设备 Download PDFInfo
- Publication number
- CN109011575B CN109011575B CN201810726203.7A CN201810726203A CN109011575B CN 109011575 B CN109011575 B CN 109011575B CN 201810726203 A CN201810726203 A CN 201810726203A CN 109011575 B CN109011575 B CN 109011575B
- Authority
- CN
- China
- Prior art keywords
- node
- path
- distance
- intermediate node
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/822—Strategy games; Role-playing games
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/807—Role playing or strategy games
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种自动寻路方法、装置和设备,具体地,所述方法包括:获取地图信息;根据所述起始点和第一节点集合的中间节点,得到多个第一路径;删除与所述多边形阻挡物存在重叠的第一路径对应的中间节点,得到第二节点集合;根据所述第二节点集合中的中间节点与目标点,得到多个第二路径;删除与所述多边形阻挡物存在重叠的第二路径对应的中间节点,得到第三节点集合;根据所述第三节点集合中的中间节点对应的第一路径和第二路径,得到最短路径距离;由所述最短路径距离,得到所述起始点到所述目标点之间的最佳路径。本发明减少了节点运算的大量消耗,提升了最优路径的获取效率。
Description
技术领域
本发明涉及路径规划技术领域,尤其涉及一种自动寻路方法、装置和设备。
背景技术
随着移动智能终端的性能的提升,越来越多的2D MMORPG(角色扮演类)游戏在移动终端上出现;其中,大部分游戏在处理角色移动部分都采用了A*寻路算法,通过A*算法能够计算出从A点(角色点)到B点(目标点)的最短路径,之后使得游戏内的角色按照得到的最短路径进行一步一步的移动。
但目前来说,用于进行寻路的A*算法,在起始点能够到达目标点的情况下,若地图过大时,每次寻路路径的计算耗时会过长,对应客户端反应较慢,从而影响用户的体感受。
因此,需要提供一种更高效地进行自动寻路的方案。
发明内容
为了解决现有技术中的问题,本发明提供了一种自动寻路方法、装置和设备,具体地:
一方面提供了一种自动寻路方法,所述方法包括:
获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括由多个中间节点组成的第一节点集合;
根据所述起始点和第一节点集合的中间节点,得到多个第一路径;
删除与所述多边形阻挡物存在重叠的第一路径对应的中间节点,得到第二节点集合;
根据所述第二节点集合中的中间节点与目标点,得到多个第二路径;
删除与所述多边形阻挡物存在重叠的第二路径对应的中间节点,得到第三节点集合;
根据所述第三节点集合中的中间节点对应的第一路径和第二路径,得到最短路径距离;
由所述最短路径距离,得到所述起始点到所述目标点之间的最佳路径。
另一方面提供了一种自动寻路方法,所述方法还包括:
获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括多个中间节点;
根据所述起始点和所述中间节点,得到多个第一路径;
根据所述第一路径确定出,所述中间节点中与所述起始点最近的第一距离节点;
根据所述目标点和所述中间节点,得到多个第二路径;
根据所述第二路径确定出,所述中间节点中与所述目标点最近的第二距离节点;
根据信息对照表依次匹配得到,所述第一距离节点到所述第二距离节点之间的所有其他中间节点;
根据所述第一距离节点、匹配得到的所有其他中间节点、第二距离节点,得到所述起始点到所述目标点之间的最佳路径。
另一方面提供了一种自动寻路装置,所述装置包括:
地图信息获取模块,用于获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括由多个中间节点组成的第一节点集合;
第一路径获取模块,用于根据所述起始点和第一节点集合的中间节点,得到多个第一路径;
第二节点集合获取模块,用于删除与所述多边形阻挡物存在重叠的第一路径对应的中间节点,得到第二节点集合;
第二路径获取模块,用于根据所述第二节点集合中的中间节点与目标点,得到多个第二路径;
第三节点集合获取模块,用于删除与所述多边形阻挡物存在重叠的第二路径对应的中间节点,得到第三节点集合;
最短路径距离获取模块,用于根据所述第三节点集合中的中间节点对应的第一路径和第二路径,得到最短路径距离;
最佳路径获取模块,用于由所述最短路径距离,得到所述起始点到所述目标点之间的最佳路径。
进一步地,所述最短路径距离获取模块,包括:
综合路径获取单元,用于将所述第三节点集合中的中间节点对应的第一路径的距离和第二路径的距离进行求和计算,获得多个综合路径距离;
最短距离获取单元,用于将多个综合路径距离进行比较,得到所述最短路径距离。
另一方面提供了一种自动寻路装置,所述装置还包括:
地图信息获取模块,用于获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括多个中间节点;
第一路径获取模块,用于根据所述起始点和所述中间节点,得到多个第一路径;
第一距离节点获取模块,用于根据所述第一路径确定出,所述中间节点中与所述起始点最近的第一距离节点;
第二路径获取模块,用于根据所述目标点和所述中间节点,得到多个第二路径;
第二距离节点获取模块,用于根据所述第二路径确定出,所述中间节点中与所述目标点最近的第二距离节点;
其他中间节点匹配模块,用于根据信息对照表依次匹配得到,所述第一距离节点到所述第二距离节点之间的所有其他中间节点;
最佳路径获取模块,用于根据所述第一距离节点、匹配得到的所有其他中间节点、第二距离节点,得到所述起始点到所述目标点之间的最佳路径。
进一步地,所述其他中间节点匹配模块包括信息对照表生成单元;
所述信息对照表生成单元包括:
第一目标节点选取子单元,用于选取所述多边形阻挡物的一个中间节点作为第一目标节点,并读取所述多边形阻挡物的其他中间节点;
第一距离计算子单元,用于计算所述第一目标节点与其他中间节点的距离,得到多个第一距离;
对应中间节点得到子单元,用于将多个第一距离进行比较,得到第一最短距离以及所述第一最短距离另一端对应的中间节点;
对应信息得到子单元,用于将所述多边形阻挡物的第二目标节点作为第一目标节点;根据得到所述第一最短距离和对应中间节点的方式,获得所述第二目标节点对应的第二最短距离和相应的中间节点;
其他信息得到子单元,用于依次遍历所述多边形阻挡物的其他中间节点,分别得到对应的最短距离以及与对应最短距离相应的中间节点;
信息对照表生成子单元,用于由所有的中间节点、对应的最短距离,以及对应最短距离相应的中间节点,生成所述信息对照表。
进一步地,所述其他中间节点匹配模块,还包括:
第一其他节点确定单元,用于根据信息对照表,确定出其他中间节点中,与所述第一距离节点具有最短距离的第一其他中间节点;
第二其他节点确定单元,用于根据信息对照表,确定出其他中间节点中,与所述第一其他中间节点具有最短距离的第二其他中间节点;
所有其他节点确定单元,用于以此进行遍历,直至出现所述第二距离节点,以得到所述第一距离节点到所述第二距离节点之间的所有其他中间节点。
进一步地,所述第一距离节点获取模块,包括:
第一删除重叠节点,用于删除与所述多边形阻挡物存在重叠的第一路径对应的中间节点;
第一距离节点获取单元,用于获取剩余中间节点中,与所述起始点具有最小距离的第一距离节点。
进一步地,所述第二距离节点获取模块;包括:
第二删除重叠节点,用于删除与所述多边形阻挡物存在重叠的第二路径对应的中间节点;
第二距离节点获取单元,用于获取剩余中间节点中,与所述目标点具有最小距离的第二距离节点。
另一方面提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上面多个方面所述的任一个自动寻路方法。
另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上面多个方面所述的任一个自动寻路方法。
本发明提供的一种自动寻路方法、装置和设备,具有的有益效果为:
本发明对与多边形阻挡物重叠的节点进行逐级删除,只需要利用剩余的中间节点的连通关系进行最优路径的获取;通过取消对地图上所有节点的权重的计算,减少了节点运算的大量消耗,提升了最优路径的获取效率。在目标点能够到达的游戏场景下,使游戏角色高效地进行寻路和行动,提升用户的体验感受,提升了对应客户端的用户粘度。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明实施例提供的实施环境的示意图;
图2是本发明实施例提供了一种自动寻路方法流程图;
图3是本发明实施例提供的一种自动寻路方法进行举例说明的示意图;
图4是本发明实施例提供的另一种自动寻路方法流程图;
图5是本发明实施例提供的信息对照表的生成方法流程图;
图6是本发明实施例提供的信息对照表的生成方法判断流程图;
图7是本发明实施例提供的根据信息对照表依次匹配得到,所述第一距离节点到所述第二距离节点之间的所有其他中间节点的步骤流程图;
图8是本发明实施例提供的一种自动寻路装置示意图;
图9是本发明实施例提供的另一种自动寻路装置示意图;
图10是本发明实施例提供的其他中间节点匹配模块组成框图;
图11是本发明实施例提供的信息对照表生成单元的组成框图;
图12是本发明实施例提供的一种自动寻路设备的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有技术中,在角色A寻找目标点时,对于地图中的每个点的权重都会进行计算,常规用于寻路的A*算法,是向相邻的格子中搜索所有可能的“最近节点”,然后把所有的“最近节点”连接起来,既为最终解;但是,随着地图中格子(节点)的密集度的提升,时间复杂度也将大幅提升,这将具有很大的时间消耗。
由于2D地图的格子状态只存在可走、不可走状态,可以通过取消A*寻路中对于每个点权重的计算来达到减少计算耗时的效果;比如,对于大片的可行走区域,区域中的节点之间的任何一点都是可联通的,可以省去这部分格子的“最近节点”搜索,只需要找出一些相关的控制节点,然后通过控制节点之间的连通,省去大部分无谓的“寻找最近节点”的运算。对此,本发明提出了一种自动寻路的方案,用于2D MMORGP手机游戏或相似游戏中,在地图上高效且路线优美的移动。
如图1所示,其示出了本说明书实施例提供的实施环境的示意图。该实施环境包括:服务器02和与该服务器02进行信息通信的终端01。
终端01可以为手机、平板电脑、膝上型便携获取机、PAD或台式获取机等等。终端01中运行有客户端,例如,终端01中运行的客户端可以为游戏客户端或类似功能的交互客户端。服务器02可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者是一个云获取服务中心。服务器02通过网络与终端01建立通信连接。
具体地,本发明实施例提供了一种自动寻路方法,如图2所示,所述方法包括:
S202.获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括由多个中间节点组成的第一节点集合;
所述多边形阻挡物为障碍物的虚拟的多边形区域,并不呈现在客户端界面上;其中获取地图信息中的多边形阻挡物的信息,包括:
根据起始点的信息、目标点的信息
根据所述起始点的信息和目标点的信息,得到起始点到达目标点中间障碍物的信息;
根据障碍物的信息获取到对应的多边形阻挡物的信息。
比如,游戏界面上游戏角色A要到达目标点B中间具有的障碍物。其中,所述起始点就是在场景中为角色A对应的位置,所述目标点就是在场景中角色A想要到达的位置B;比如在游戏界面上用户操作其在游戏中的角色A,通过点击触摸屏上的位置B,控制对应的游戏角色A到达的位置B。
在应用场景中会有很多的障碍物;对于具有连接关系的两个障碍物,在地图上可以是两个独立的多边形区域;对于紧挨或是有交接的两个障碍物,在地图上可以是一个多边形区域。
本实施例中的多边形阻挡物的信息包含有多个多边形区域,每个多边形区域又具有多个中间节点;其中,这所有的中间节点在本实施例中可以组成一个节点集合。
其中,在该步骤中可以包括:判断是否读取到多边形阻挡物的信息,若没有读取到,则按照预设规则,根据起始点到达目标点中间障碍物的信息,得到所述多边形阻挡物对应的区域,并保存在地图信息中。其中,所述多边形阻挡物对应的区域,为包含所述起始点到所述目标点之间的所有障碍物的面积区域。
若障碍物为独立的障碍物来说,所述多边形阻挡物就是所有独立障碍物的所在的区域面积之和,也就是多个多边形区域之和,其中每个多边形区域均为闭合的多边形;若既具有独立的障碍物,又具有相连的障碍物,则所述多边形阻挡物就是独立障碍物的所在的区域面积与相连的障碍物所在的区域面积之和。本实施例中可以为多边形阻挡物对应的区域设置颜色,优选地,可以为所有的多边形设置相同的颜色,用于后期的路径对应线段的像素对比,比如为多边形填充颜色为黑色。
具体地,按照预设规则得到所述多边形阻挡物对应的区域就是按照预设规则划定出对应的障碍物所在的区域面积,对于独立的障碍物划定出所述独立障碍物对应的面积,对于相连的障碍物划定出相连的障碍物对应的面积。所述预设规则可以为:
获取当前障碍物的真实形状,以及所述真实形状内部具有的最长内线段;
以所述最长内线段的中点为圆心,以所述最长内线段为直径划定一个用于包含所述真实形状的内扩圆;
将所述内扩圆平均分为四份,为四个相同的圆弧;
从每一份内扩圆中确定出距离对应的圆弧最近的第一障碍物顶点;
比如,以为其中一个圆弧为例,该圆弧具有两个顶点,第一圆弧顶点和第二圆弧顶点;这两个顶点与所述第一障碍物顶点对应出第一线段和第二线段;
判断所述第一线段或/和所述第二线段是否与所述多边形阻碍物重叠;
若所述第一线段和所述第二线段与所述障碍物均不重叠,则所述第一障碍物顶点就是用于组成所述多边形阻挡物区域的一个点,所述第一线段和第二线段为所述多边形阻挡物的其中的两个边。
若存在重叠的情况,比如所述第一线段与所述障碍物重叠,则找到所述第一障碍物顶点与距离较近的圆弧顶点(比如是第一圆弧顶点)之间距离所述圆弧最近的第二障碍物顶点,则所述第一圆弧顶点、第二障碍物顶点和第一障碍物顶点之间对应出两条线段,第三线段和第四线段;
判断所述第三线段或/和第四线段是否与所述多边形阻碍物重叠;
若第三线段或是第四线段存在与所述多边形阻碍物重叠的情况,则按照上述获取第二障碍物顶点的方式,去获取对应的第三障碍物顶点;直至出现的障碍物顶点与对应的圆弧顶点和其他障碍物顶点能够将相应部分的多边形阻碍物包含进来;此时,这中间的线段属于组成多边形阻挡物的虚拟边。
在第二线段重叠的情况下,按照上述分析第一线段的方式得到相应部分的障碍物对应的多边形阻挡物的边。
同样地,其他圆弧使用同样的方式去获取相应部分的障碍物对应的多边形阻挡物的边。
以上得到的所有的多边形阻挡物的边组成了该多边形阻挡物,从而将所述障碍物包含进来。
其他的独立障碍物或是相连障碍物也是同样预设的规则进行获取。
S204.根据所述起始点和第一节点集合的中间节点,得到多个第一路径;
S206.删除与所述多边形阻挡物存在重叠的第一路径对应的中间节点,得到第二节点集合;
根据所述起始点与多边形阻挡物的中间节点的信息,将每个中间节点与所述起始点之间会对应一个路径,从而得到多个第一路径;其中,这多个第一路径中会存在与多边形阻挡物重叠的路径,因为实际场景中不可能从障碍物身上走过,所以与多边形阻挡物重叠的路径为无效路径,需要将这部分路径进行删除;这样的话,所述第一节点集合进行缩小,变成了第二节点集合。
步骤S206中删除与所述多边形阻挡物存在重叠的第一路径对应的中间节点,之前包括,判断多个第一路径中与多边形阻挡物存在重叠的第一路径,具体地,该判断过程可以通过以下方式实现,
(1)获取当前第一路径对应起始点坐标和对应的中间节点的坐标;
比如起始点A(x1.y1)和中间节点C1(x2.y2);其中,当前第一路径对应的线段是由很多个像素点组成;
(2)通过坐标计算得到起始点和对应的中间节点之间的距离,获得对应线段的第一长度(比如为L);
(3)根据将一个单位长度切割成n个小节点的方式,得到第一长度分隔为N=L*n;
(4)根据数量N、起始点坐标和对应的中间节点的坐标,得到两点之间的所有的小节点的坐标;
比如,根据一个单位长度切割成10个小节点的方式,将长度L分隔为N断,N=L*10;
按照x1+(x2-x1)/n和y1+(y2-y1)/n,从起始点开始计算出A和C1两点间所有小节点的坐标,其中,n=12345……。
(5)获取地图上的原始像素值,也就是小节点在地图上的原始像素值
(6)将呈现出来的小节点的像素值与原始像素值进行比较,判断是否发生变化;若是,则进一步对相应单位长度中的其他小节点呈现的像素值进行判断,
(7)在对应的单位长度下的小节点的像素值都发生了变化时,则说明该单位长度对应的路径与多边形阻挡物发生了重叠。
比如,给与小节点的原始像素值为原生红色对应的像素值,给与多边形阻挡物的像素为黑色对应的像素,则在原生红色与黑色重叠后,此时的颜色会变为紫色,通过这种像素值的变化能够判断出当前小节点是否与多边形阻挡物重叠。进一步判断对应的单位长度上的其他小节点是否发生变化,在整个单位长度中的小节点的像素值都变化的情况下,说明对应的路径与多边形阻挡物发生了重叠。
其中,其他的第一路径可以以同样的方式进行是否与多边形阻挡物相重叠的判断。
S208.根据所述第二节点集合中的中间节点与目标点,得到多个第二路径;
S210.删除与所述多边形阻挡物存在重叠的第二路径对应的中间节点,得到第三节点集合;
进一步地,如第一路径的生成方式相同,剩余的第二节点集合中的每个中间节点与所述目标点之间会对应一个路径,从而可以得到多个第二路径;基于相同的原理,与多边形阻挡物相重叠的路径属于无效路径,所以进一步将第二路径中与多边形阻挡物相重叠的路径删除;这样的话,所述第二节点集合进一步缩小得到第三节点集合。
如图3所示,左侧为起始点A,右侧为目标点B,中间的黑色区域为障碍物,黑色障碍物周边的曲线区域为用户包含障碍物的多边形阻挡物(比如为三角形);图中多边形阻挡物对应有3个中间节点,起始点与这三个中间节点之间对应出三条第一路径(左侧的三条路线),其中一条第一路径与障碍物存在重叠,属于无效的路径,则将该路径以及对应的节点删除,此时剩下两个中间节点,进一步将剩余的两个中间节点与所述目标点对应出两条第二路径(右侧的两条路线);这两条第二路径不存在与多边形阻挡物重叠的路径;则之后将这两条第二路径进行大小比较,最后得到距离值最小的那条路径就是该场景下起始点到目标点的最优路径。
给与说明的是,步骤S210中判断多个第二路径是否与多边形阻挡物重叠,具体地,该判断过程可以参照步骤S206中判断第一路径是否与多边形阻挡物重叠的方法过程。
S212.根据所述第三节点集合中的中间节点对应的第一路径和第二路径,得到最短路径距离;
所述第三节点集合中的中间节点为经过筛选之后的节点,如果最后能够处于所述第三节点集合中,这说明是所述目标点是可以到达的;此时所述第三节点集合中的中间节点对应的第一路径和第二路径组成的总路径中,必然存在所述起始点到目标点的最优路径。
所以具体地,步骤S212根据所述第三节点集合中的中间节点对应的第一路径和第二路径,得到最短路径距离,可以包括:
将所述第三节点集合中的中间节点对应的第一路径的距离和第二路径的距离进行求和计算,获得多个综合路径距离;
将多个综合路径距离进行比较,得到所述最短路径距离。
其中,位于所述第三节点集合中的中间节点,必然一端能够到达所述起始点,另一端能够到达目标点;对于这样的多个中间节点来说,会存在多组这样的第一路径和第二路径的组合;对这些组合的路径距离之和进行大小对比,得到的最小的距离值也就是所述最短路径距离。
S214.由所述最短路径距离,得到所述起始点到所述目标点之间的最佳路径。
根据上述步骤得到的最短路径距离对应的第一路径和第二路径的组合路线,就是本实施例在目标点可以到达的情况下,所述起始点到目标点的最佳路径。
需要说明的是,本实施例中所用到的第一路径、第二路径等并不是真实显示出来的路线,只是节点的集合;本实施例中得到的最优路径为游戏角色进行移动的方向;本实施例中路径对应的线段也并不是呈现在地图中的真实线段,只是用于进行路径相关内容的说明。
进一步说明的是,每块障碍物对应的多边形区域,与包含在内部的真实的障碍物之间可以有一定的间距,对应地也就是,可以包括:
在形成多边形区域之后,检测所述多边形区域与相应的内部障碍物之间的间距;
判断该间距是否大于角色A移动所需要的距离;
若否,则调整该间距,使该间距满足起始点处的角色A在需要从障碍物旁边走过时,能够正常通过;
或者,如果起始点处的角色A需要从该多边形区域与相邻的多边形区域之间通过时,能够正常通过。
本实施例通过计算得到所述起始点与多边形阻挡物的所有中间节点之间的第一路径,对所述第一路径进行重叠判断,删除无效的重叠路径和对应的中间节点;进一步根据剩余的中间节点与所述目标点得到对应的第二路径;对所述第二路径进行重叠判断,删除删除无效的重叠路径和对应的中间节点;再剩余的中间节点对应的第一路径和第二路径就是有效路径,从这些有效路径中选出最短有效路径,就属于起始点与所述目标点之间的最优的路径;这说明所述目标点是可以到达的。并且,其中的第一路径和第二路径属于保留了“关键节点”,跳过了“无用节点”,这不仅能够有用于提升自动寻路的性能,还能够降低内存成本。给与说明的是,通过实验得到,本实施例的自动寻路方法能够将寻路效率提升一个数量级甚至更多。
在该过程中,通过逐步地对生成的路径进行重叠判断;经过两次判断之后剩余的中间节点对应的第一路径和第二路径组成的路径之和,作为找到最优路径的数据基础,然后进行路径总和的判断,得到最优路径;这样在寻路之前,对控制点(中间节点)的预先处理,能够省去一些无效的控制点的计算过程,从而节省了运算程序和时间,提升了最优路径的获取效率;在游戏场景下提升了起始点位置上的游戏角色的寻路和行动效率,提升了对应客户端的用户粘度。
本发明实施例还提供了一种自动寻路方法,如图4所示,所述方法还包括:
S402.获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括多个中间节点;
所述多边形阻挡物为包含了地图中障碍物的多边形区域,其中,在实际场景中会有很多的障碍物,对于连接关系的两个障碍物之间,可以是两个独立的多边形区域,对于紧挨或是有交接的两个障碍物之间,可以是一个多边形区域。本实施例中的多边形阻挡物的信息包含有多有的障碍物对应的多边形区域的中间节点。
所述起始点在实际场景中为角色对应的位置,所述目标点为在实际场景中角色想要到达的位置;比如在游戏界面上操作其在游戏中的角色,通过点击触摸屏上的位置,控制对应的游戏角色到达的位置。
其中,在步骤S402之前,可以包括:判断是否读取到多边形阻挡物的信息,若没有读取到,说明地图信息中还没有所述多边形阻挡物的信息,则按照预设规则划定出所述多边形阻挡物对应的区域,并保存在地图信息中。其中,所述多边形阻挡物对应的区域,为包含所述起始点到所述目标点之间的所有障碍物的面积区域。
若障碍物为独立的障碍物来说,所述多边形阻挡物就是所有独立障碍物的所在的区域面积之和;若既具有独立的障碍物,又具有相连的障碍物,则所述多边形阻挡物就是独立障碍物的所在的区域面积与相连的障碍物所在的区域面积之和。
具体地,按照预设规则划定出所述多边形阻挡物对应的区域就是按照预设规则划定出对应的障碍物所在的区域面积,对于独立的障碍物划定出所述独立障碍物对应的面积,对于相连的障碍物划定出相连的障碍物对应的面积。所述预设规则可以为:
获取当前障碍物的真实形状,以及所述真实形状内部具有的最长内线段;
以所述最长内线段的中点为圆心,以所述最长内线段为直径划定一个用于包含所述真实形状的内扩圆;
将所述内扩圆平均分为四份,为四个相同的圆弧;
从每一份内扩圆中确定出距离对应的圆弧最近的第一障碍物顶点;
比如,以为其中一个圆弧为例,该圆弧具有两个顶点,第一圆弧顶点和第二圆弧顶点;这两个顶点与所述第一障碍物顶点对应出第一线段和第二线段;
判断所述第一线段或/和所述第二线段是否与所述多边形阻碍物重叠;
若所述第一线段和所述第二线段与所述障碍物均不重叠,则所述第一障碍物顶点就是用于组成所述多边形阻挡物的一个点,所述第一线段和第二线段为所述多边形阻挡物的其中的两个边。
若存在重叠的情况,比如所述第一线段与所述障碍物重叠,则找到所述第一障碍物顶点与距离较近的圆弧顶点(比如是第一圆弧顶点)之间距离所述圆弧最近的第二障碍物顶点,则所述第一圆弧顶点、第二障碍物顶点和第一障碍物顶点之间对应出两条线段,第三线段和第四线段;
判断所述第三线段或/和第四线段是否与所述多边形阻碍物重叠;
若第三线段或是第四线段存在与所述多边形阻碍物重叠的情况,则按照上述获取第二障碍物顶点的方式,去获取对应的第三障碍物顶点;直至出现的障碍物顶点与对应的圆弧顶点和其他障碍物顶点能够将相应部分的多边形阻碍物包含进来;此时,这中间的线段属于多边形阻挡物的虚拟边。
在第二线段重叠的情况下,按照上述分析第一线段的方式得到相应部分的障碍物对应的多边形阻挡物的边。
同样地,其他圆弧使用同样的方式去获取相应部分的障碍物对应的多边形阻挡物的边。
以上得到的所有的多边形阻挡物的边组成了该多边形阻挡物,从而将所述障碍物包含进来。
其他的独立障碍物或是相连障碍物也是同样预设的规则进行获取。
S404.根据所述起始点和所述中间节点,得到多个第一路径;
S406.根据所述第一路径确定出,所述中间节点中与所述起始点最近的第一距离节点;
根据所述起始点与多边形阻挡物的中间节点的信息,将每个中间节点与所述起始点之间会对应一个路径,从而得到多个第一路径。
进一步地,从多个第一路径中,比较这多个第一路径的距离值从而得出其中最小的距离值,这个最小的距离值也就是所述起始点与所述多边形阻挡物之间距离最近的节点,即本实施例中的第一距离节点。
一种实施例中,步骤S406根据所述第一路径确定出,所述中间节点中与所述起始点最近的第一距离节点;包括:
删除与所述多边形阻挡物存在重叠的第一路径对应的中间节点;
获取剩余中间节点中,与所述起始点具有最小距离的第一距离节点。
具体地,在起始点与多边形阻挡物的中间节点组成的第一路径中,会存在与所述多边形阻挡物重叠的路径,该重叠的路径为无效路径,将该路径及对应的中间节点删除;每个剩余的有效中间节点与所述起始点之间会存在一个有效的路径,从这些有效的路径中得到一个最小距离,这个最小距离对应的中间节点就是所述的第一距离节点。
S408.根据所述目标点和所述中间节点,得到多个第二路径;
S410.根据所述第二路径确定出,所述中间节点中与所述目标点最近的第二距离节点;
如上述得到第一距离节点的方式得到所述目标点与所述多边形之间距离最近的第二距离节点,具体是:
根据所述目标点与多边形阻挡物的中间节点的信息,将每个中间节点与所述目标点之间会对应一个路径,从而得到多个第二路径。
进一步地,从多个第二路径中,比较这多个第一路径的距离值从而得出其中最小的距离值,这个最小的距离值也就是所述目标点与所述多边形阻挡物之间距离最近的节点,即本实施例中的第二距离节点。
同样的,步骤S410根据所述第二路径确定出,所述中间节点中与所述目标点最近的第二距离节点;包括:
删除与所述多边形阻挡物存在重叠的第二路径对应的中间节点;
获取剩余中间节点中,与所述目标点具有最小距离的第二距离节点。
具体地,具体地,在目标点与多边形阻挡物的中间节点组成的第二路径中,会存在与所述多边形阻挡物重叠的路径,该重叠的路径为无效路径,将该路径及对应的中间节点删除;每个剩余的有效中间节点与所述目标点之间会存在一个有效的路径,从这些有效的路径中得到一个最小距离,这个最小距离对应的中间节点就是所述的第二距离节点。
S412.根据信息对照表依次匹配得到,所述第一距离节点到所述第二距离节点之间的所有其他中间节点;
其中,所述第一距离节点和第二距离节点均为多边形阻挡物上的中间节点,在得到起始点与多边形阻挡物的最短距离,以及所述目标点与所述多边形阻挡物的最短距离之后,要能够正常且有效地使起始点能够到达所述目标点,则还需要确定出所述第一距离节点与所述第二距离节点之间的最短距离,也就是需要确定出这个最短距离对应出的中间节点有哪些。所以,本实施例中通过建立的信息对照表来获得所述第一距离节点与所述第二距离节点之间的其他中间节点。具体地:
进一步地,所述信息对照表的生成方法,如图5-6所示,包括:
S602.选取所述多边形阻挡物的一个中间节点作为第一目标节点,并读取所述多边形阻挡物的其他中间节点;
S604.计算所述第一目标节点与其他中间节点的距离,得到多个第一距离;
S606.将多个第一距离进行比较,得到第一最短距离以及所述第一最短距离另一端对应的中间节点;
由于多边形阻挡物具有很多个中间节点,先选取其中的一个中间节点作为第一目标节点,该第一目标节点与每个其他的中间节点之间也具有一个路径距离,通过计算所述第一目标节点与其他中间节点的路径距离,得到这些路径距离中最近的距离,也就是第一最短距离;进一步,也就得到该第一最短距离对应的与所述第一目标节点最近的中间节点。
S608.将所述多边形阻挡物的第二目标节点作为第一目标节点;根据得到所述第一最短距离和对应中间节点的方式,获得所述第二目标节点对应的第二最短距离和相应的中间节点;
其中,所述第二目标节点也可以选定上述第一距离另一端对应的中间节点,这样挨着的方式依次进行下去。所述第二目标节点也可以从所有其他中间节点中去选取。
S610.依次遍历所述多边形阻挡物的其他中间节点,分别得到对应的最短距离以及与对应最短距离相应的中间节点;
进一步地,将多边形阻挡物的另一个中间节点作为目标节点,也就是实施例中的第二目标节点,将第二目标节点看作第一目标节点,按照上述S602-S606得到第一最短距离和对应中间节点的方式,获得这个第二目标节点对应的第二最短距离和相应的中间节点。
按照上述的方式去获取其他中间节点对应的最短距离和对应中间节点,其实,在遍历所述多边形阻挡物的中间节点时,只需要在偶数个中间节点时遍历一半的中间节点,在奇数个中间节点时遍历一半加一个中间节点即可,因为这样的情况下,已经得到了每个中间节点对应的最近的中间节点,以及这两个中间节点之间的最短距离。
S612.由所有的中间节点、对应的最短距离,以及对应最短距离相应的中间节点,生成所述信息对照表。
根据上述步骤得到的所有的中间节点,以及两两对应的具有最短距离的相应中间节点,将这些信息组成本实施例中的信息对照表。本实施例中的信息对照表属于一个map_data,其中包含有路径列表path_list(中间节点与对应的最短距离)和点列表point_list中(中间节点与对应最短距离相应的另一个中间节点)。
进一步地,在建立得到所述信息对照表之后,步骤S412中根据信息对照表依次匹配得到,所述第一距离节点到所述第二距离节点之间的所有其他中间节点;如图7所示,包括:
S802.根据信息对照表,确定出其他中间节点中,与所述第一距离节点具有最短距离的第一其他中间节点;
S804.根据信息对照表,确定出其他中间节点中,与所述第一其他中间节点具有最短距离的第二其他中间节点;
S806.以此进行遍历,直至出现所述第二距离节点,以得到所述第一距离节点到所述第二距离节点之间的所有其他中间节点。
具体是,利用所述信息对照表,先从所述信息对照表中匹配出所述第一距离节点具有最短距离的第一其他中间节点;进一步,利用所述信息对照表,去匹配得到这个第一其他中间节点对应具有最短距离的第二其他中间节点;按照这种方式依次进行下去,直到根据所述信息对照表匹配得到的是所述第二距离接待;此时,就得到了所述第一距离节点到第二距离节点之间的其他中间节点,同时得到了每两个节点之间的最短距离。
S414.根据所述第一距离节点、匹配得到的所有其他中间节点、第二距离节点,得到所述起始点到所述目标点之间的最佳路径。
具体地,根据信息对照表匹配得到所述第一距离节点与所述第二距离节点之间具有最近距离的所有其他中间节点,并得到这些中间节点之间对应的所有路径;再结合所述起始点与第一距离节点之间的路径,以及所述第二距离节点与目标点之间的路径;这些路径之和就可以看做所述起始点到所述目标点之间的最佳路径。并且,其中的第一路径对应的第一距离节点,以及第二路径对应的第二距离节点,都属于“关键节点”,这中间跳过了很多的“无用节点”;这不仅能够有用于提升自动寻路的性能,还能够降低内存成本。给与说明的是,通过实验得到,本实施例的自动寻路方法能够将寻路效率提升一个数量级甚至更多。
本实施例在目标点可以到达的情况下,通过计算得到所述起始点距离所述多边形阻挡物的最近路径,以及所述目标点距离所述多边形阻挡物的最近路径,还有,得到的这两个最近路径之间的一个最优的综合路径;综合得到的这三个步骤下的总的路径,就属于所述起始点与所述目标点之间的最优的路径。在该过程中,能够将所述起始点和目标点分开独立的分别寻路到达所述多边形阻挡物的最近路径,然后再结合所述多边形阻挡物之间的最优路径即可,省去了一个节点一个节点去搜索路径的繁琐和耗时,从而节省了运算程序和时间,提升了最优路径的获取效率;在游戏场景下提升了起始点位置上的游戏角色的寻路和行动效率,提升了对应客户端的用户粘度。
本发明实施例提供了一种自动寻路装置,如图8所示,所述装置包括:
地图信息获取模块202,用于获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括由多个中间节点组成的第一节点集合;
第一路径获取模块204,用于根据所述起始点和第一节点集合的中间节点,得到多个第一路径;
第二节点集合获取模块206,用于删除与所述多边形阻挡物存在重叠的第一路径对应的中间节点,得到第二节点集合;
第二路径获取模块208,用于根据所述第二节点集合中的中间节点与目标点,得到多个第二路径;
第三节点集合获取模块210,用于删除与所述多边形阻挡物存在重叠的第二路径对应的中间节点,得到第三节点集合;
最短路径距离获取模块212,用于根据所述第三节点集合中的中间节点对应的第一路径和第二路径,得到最短路径距离;
最佳路径获取模块214,用于由所述最短路径距离,得到所述起始点到所述目标点之间的最佳路径。
进一步地,所述最短路径距离获取模块212,包括:
综合路径获取单元,用于将所述第三节点集合中的中间节点对应的第一路径的距离和第二路径的距离进行求和计算,获得多个综合路径距离;
最短距离获取单元,用于将多个综合路径距离进行比较,得到所述最短路径距离。
本发明实施例提供了一种自动寻路装置,如图9所示,所述装置还包括:
地图信息获取模块402,用于获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括多个中间节点;
第一路径获取模块404,用于根据所述起始点和所述中间节点,得到多个第一路径;
第一距离节点获取模块406,用于根据所述第一路径确定出,所述中间节点中与所述起始点最近的第一距离节点;
第二路径获取模块408,用于根据所述目标点和所述中间节点,得到多个第二路径;
第二距离节点获取模块410,用于根据所述第二路径确定出,所述中间节点中与所述目标点最近的第二距离节点;
其他中间节点匹配模块412,用于根据信息对照表依次匹配得到,所述第一距离节点到所述第二距离节点之间的所有其他中间节点;
最佳路径获取模块414,用于根据所述第一距离节点、匹配得到的所有其他中间节点、第二距离节点,得到所述起始点到所述目标点之间的最佳路径。
进一步地,所述其他中间节点匹配模块412,如图10所示,包括信息对照表生成单元602;
所述信息对照表生成单元602,如图11所示,包括:
第一目标节点选取子单元802,用于选取所述多边形阻挡物的一个中间节点作为第一目标节点,并读取所述多边形阻挡物的其他中间节点;
第一距离计算子单元804,用于计算所述第一目标节点与其他中间节点的距离,得到多个第一距离;
对应中间节点得到子单元806,用于将多个第一距离进行比较,得到第一最短距离以及所述第一最短距离另一端对应的中间节点;
对应信息得到子单元808,用于将所述多边形阻挡物的第二目标节点作为第一目标节点;根据得到所述第一最短距离和对应中间节点的方式,获得所述第二目标节点对应的第二最短距离和相应的中间节点;
其他信息得到子单元810,用于依次遍历所述多边形阻挡物的其他中间节点,分别得到对应的最短距离以及与对应最短距离相应的中间节点;
信息对照表生成子单元812,用于由所有的中间节点、对应的最短距离,以及对应最短距离相应的中间节点,生成所述信息对照表。
进一步地,所述其他中间节点匹配模块412,还包括:
第一其他节点确定单元604,用于根据信息对照表,确定出其他中间节点中,与所述第一距离节点具有最短距离的第一其他中间节点;
第二其他节点确定单元606,用于根据信息对照表,确定出其他中间节点中,与所述第一其他中间节点具有最短距离的第二其他中间节点;
所有其他节点确定单元608,用于以此进行遍历,直至出现所述第二距离节点,以得到所述第一距离节点到所述第二距离节点之间的所有其他中间节点。
进一步地,所述第一距离节点获取模块406,包括:
第一删除重叠节点,用于删除与所述多边形阻挡物存在重叠的第一路径对应的中间节点;
第一距离节点获取单元,用于获取剩余中间节点中,与所述起始点具有最小距离的第一距离节点。
进一步地,所述第二距离节点获取模块410;包括:
第二删除重叠节点,用于删除与所述多边形阻挡物存在重叠的第二路径对应的中间节点;
第二距离节点获取单元,用于获取剩余中间节点中,与所述目标点具有最小距离的第二距离节点。
本说明书实施例还提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方法实施例任一所述的自动寻路方法。
具体地,本说明书实施例还提供了一种自动寻路设备的结构示意图,如图12所示,该设备可以用于实施上述任一方法实施例中提供的自动寻路方法。具体来讲:
所述设备可以包括RF(Radio Frequency,射频)电路1610、包括有一个或一个以上计算机可读存储介质的存储器1620、输入单元1630、显示单元1640、传感器1650、音频电路1660、WiFi(wireless fidelity,无线保真)模块1670、包括有一个或者一个以上处理核心的处理器1680、以及电源1690等部件。本领域技术人员可以理解,图12中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路1610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器1680处理;另外,将涉及上行的数据发送给基站。通常,RF电路1610包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路1610还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器1620可用于存储软件程序以及模块,处理器1680通过运行存储在存储器1620的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器1620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1620还可以包括存储器控制器,以提供处理器1680和输入单元1630对存储器1620的访问。
输入单元1630可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元1630可包括触敏表面1631以及其他输入设备1632。触敏表面1631,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面1631上或在触敏表面1631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面1631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1680,并能接收处理器1680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面1631。除了触敏表面1631,输入单元1630还可以包括其他输入设备1632。具体地,其他输入设备1632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1640可用于显示由用户输入的信息或提供给用户的信息以及所述设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元1640可包括显示面板1641,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板1641。进一步的,触敏表面1631可覆盖显示面板1641,当触敏表面1631检测到在其上或附近的触摸操作后,传送给处理器1680以确定触摸事件的类型,随后处理器1680根据触摸事件的类型在显示面板1641上提供相应的视觉输出。其中,触敏表面1631与显示面板1641可以两个独立的部件来实现输入和输入功能,但是在某些实施例中,也可以将触敏表面1631与显示面板1641集成而实现输入和输出功能。
所述设备还可包括至少一种传感器1650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1641的亮度,接近传感器可在所述设备移动到耳边时,关闭显示面板1641和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于所述设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1660、扬声器1661,传声器1662可提供用户与所述设备之间的音频接口。音频电路1660可将接收到的音频数据转换后的电信号,传输到扬声器1661,由扬声器1661转换为声音信号输出;另一方面,传声器1662将收集的声音信号转换为电信号,由音频电路1660接收后转换为音频数据,再将音频数据输出处理器1680处理后,经RF电路1610以发送给比如另一设备,或者将音频数据输出至存储器1620以便进一步处理。音频电路1660还可能包括耳塞插孔,以提供外设耳机与所述设备的通信。
WiFi属于短距离无线传输技术,所述设备通过WiFi模块1670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图12示出了WiFi模块1670,但是可以理解的是,其并不属于所述设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1680是所述设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器1620内的软件程序和/或模块,以及调用存储在存储器1620内的数据,执行所述设备的各种功能和处理数据,从而对设备进行整体监控。可选的,处理器1680可包括一个或多个处理核心;优选的,处理器1680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1680中。
所述设备还包括给各个部件供电的电源1690(比如电池),优选的,电源可以通过电源管理系统与处理器1680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1690还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,所述设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,设备的显示单元是触摸屏显示器,设备还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行本发明中方法实施例中的指令。
本说明书实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方法实施例提供的自动寻路方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络设备中的至少一个网络设备。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本说明书实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种自动寻路方法,其特征在于,所述方法包括:
获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括由多个中间节点组成的第一节点集合;
根据所述起始点和第一节点集合的中间节点,得到多个第一路径;
判断所述多个第一路径中与所述多边形阻挡物存在重叠的第一路径;
删除与所述多边形阻挡物存在重叠的第一路径对应的中间节点,得到第二节点集合;
根据所述第二节点集合中的中间节点与目标点,得到多个第二路径;
删除与所述多边形阻挡物存在重叠的第二路径对应的中间节点,得到第三节点集合;
根据所述第三节点集合中的中间节点对应的第一路径和第二路径,得到最短路径距离;
由所述最短路径距离,得到所述起始点到所述目标点之间的最佳路径;
其中,所述判断所述多个第一路径中与所述多边形阻挡物存在重叠的第一路径包括:
获取当前第一路径对应的起始点坐标和对应的中间节点的坐标;确定所述起始点坐标和中间节点的坐标之间的所有小节点的坐标;比较所述小节点的坐标对应的小节点在地图上的原始像素值和呈现出来的像素值;根据所述原始像素值和呈现出来的像素值的比较结果,确定所述多个第一路径中与所述多边形阻挡物存在重叠的第一路径。
2.根据权利要求1自动寻路方法,其特征在于,所述根据所述第三节点集合中的中间节点对应的第一路径和第二路径,得到最短路径距离,包括:
将所述第三节点集合中的中间节点对应的第一路径的距离和第二路径的距离进行求和计算,获得多个综合路径距离;
将多个综合路径距离进行比较,得到所述最短路径距离。
3.一种自动寻路方法,其特征在于,所述方法还包括:
获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括多个中间节点;
根据所述起始点和所述中间节点,得到多个第一路径;
根据所述第一路径确定出,所述中间节点中与所述起始点最近的第一距离节点;
根据所述目标点和所述中间节点,得到多个第二路径;
根据所述第二路径确定出,所述中间节点中与所述目标点最近的第二距离节点;
根据信息对照表依次匹配得到,所述第一距离节点到所述第二距离节点之间的所有其他中间节点;
根据所述第一距离节点、匹配得到的所有其他中间节点、第二距离节点,得到所述起始点到所述目标点之间的最佳路径。
4.根据权利要求3所述的自动寻路方法,其特征在于,所述信息对照表的生成方法,包括:
选取所述多边形阻挡物的一个中间节点作为第一目标节点,并读取所述多边形阻挡物的其他中间节点;
计算所述第一目标节点与其他中间节点的距离,得到多个第一距离;
将多个第一距离进行比较,得到第一最短距离以及所述第一最短距离另一端对应的中间节点;
将所述多边形阻挡物的第二目标节点作为第一目标节点;根据得到所述第一最短距离和对应中间节点的方式,获得所述第二目标节点对应的第二最短距离和相应的中间节点;
依次遍历所述多边形阻挡物的其他中间节点,分别得到对应的最短距离以及与对应最短距离相应的中间节点;
由所有的中间节点、对应的最短距离,以及对应最短距离相应的中间节点,生成所述信息对照表。
5.根据权利要求3所述的自动寻路方法,其特征在于,所述根据信息对照表依次匹配得到,所述第一距离节点到所述第二距离节点之间的所有其他中间节点;包括:
根据信息对照表,确定出其他中间节点中,与所述第一距离节点具有最短距离的第一其他中间节点;
根据信息对照表,确定出其他中间节点中,与所述第一其他中间节点具有最短距离的第二其他中间节点;
以此进行遍历,直至出现所述第二距离节点,以得到所述第一距离节点到所述第二距离节点之间的所有其他中间节点。
6.根据权利要求3所述的自动寻路方法,其特征在于,所述根据所述第一路径确定出,所述中间节点中与所述起始点最近的第一距离节点;包括:
删除与所述多边形阻挡物存在重叠的第一路径对应的中间节点;
获取剩余中间节点中,与所述起始点具有最小距离的第一距离节点。
7.根据权利要求3所述的自动寻路方法,其特征在于,所述根据所述第二路径确定出,所述中间节点中与所述目标点最近的第二距离节点;包括:
删除与所述多边形阻挡物存在重叠的第二路径对应的中间节点;
获取剩余中间节点中,与所述目标点具有最小距离的第二距离节点。
8.一种自动寻路装置,其特征在于,所述装置包括:
地图信息获取模块,用于获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括由多个中间节点组成的第一节点集合;
第一路径获取模块,用于根据所述起始点和第一节点集合的中间节点,得到多个第一路径;
判断模块,用于判断所述多个第一路径中与所述多边形阻挡物存在重叠的第一路径;
第二节点集合获取模块,用于删除与所述多边形阻挡物存在重叠的第一路径对应的中间节点,得到第二节点集合;
第二路径获取模块,用于根据所述第二节点集合中的中间节点与目标点,得到多个第二路径;
第三节点集合获取模块,用于删除与所述多边形阻挡物存在重叠的第二路径对应的中间节点,得到第三节点集合;
最短路径距离获取模块,用于根据所述第三节点集合中的中间节点对应的第一路径和第二路径,得到最短路径距离;
最佳路径获取模块,用于由所述最短路径距离,得到所述起始点到所述目标点之间的最佳路径;
其中,所述判断模块具体用于:获取当前第一路径对应的起始点坐标和对应的中间节点的坐标;确定所述起始点坐标和中间节点的坐标之间的所有小节点的坐标;比较所述小节点的坐标对应的小节点在地图上的原始像素值和呈现出来的像素值;根据所述原始像素值和呈现出来的像素值的比较结果,确定所述多个第一路径中与所述多边形阻挡物存在重叠的第一路径。
9.一种自动寻路装置,其特征在于,所述装置还包括:
地图信息获取模块,用于获取地图信息,所述地图信息包括起始点的信息、目标点的信息和多边形阻挡物的信息,所述多边形阻挡物的信息包括多个中间节点;
第一路径获取模块,用于根据所述起始点和所述中间节点,得到多个第一路径;
第一距离节点获取模块,用于根据所述第一路径确定出,所述中间节点中与所述起始点最近的第一距离节点;
第二路径获取模块,用于根据所述目标点和所述中间节点,得到多个第二路径;
第二距离节点获取模块,用于根据所述第二路径确定出,所述中间节点中与所述目标点最近的第二距离节点;
其他中间节点匹配模块,用于根据信息对照表依次匹配得到,所述第一距离节点到所述第二距离节点之间的所有其他中间节点;
最佳路径获取模块,用于根据所述第一距离节点、匹配得到的所有其他中间节点、第二距离节点,得到所述起始点到所述目标点之间的最佳路径。
10.一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-2任一所述的自动寻路方法,权利要求3-7任一所述的自动寻路方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810726203.7A CN109011575B (zh) | 2018-07-04 | 2018-07-04 | 一种自动寻路方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810726203.7A CN109011575B (zh) | 2018-07-04 | 2018-07-04 | 一种自动寻路方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109011575A CN109011575A (zh) | 2018-12-18 |
CN109011575B true CN109011575B (zh) | 2019-07-02 |
Family
ID=65521657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810726203.7A Active CN109011575B (zh) | 2018-07-04 | 2018-07-04 | 一种自动寻路方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109011575B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059146B (zh) * | 2019-04-16 | 2021-04-02 | 珠海金山网络游戏科技有限公司 | 一种数据采集方法、服务器、计算设备及存储介质 |
CN112386914A (zh) * | 2019-08-14 | 2021-02-23 | 上海幻电信息科技有限公司 | 面向虚拟对象的路径规划方法、装置以及计算机设备 |
JP7525988B2 (ja) * | 2019-09-03 | 2024-07-31 | 株式会社スクウェア・エニックス | ビデオゲーム処理プログラム、及びビデオゲーム処理システム |
CN111228804B (zh) * | 2020-02-04 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 在虚拟环境中驾驶载具的方法、装置、终端及存储介质 |
CN113368499B (zh) * | 2020-03-09 | 2022-09-06 | 柏项网络科技(上海)有限公司 | 寻路方法及装置、计算机可读存储介质 |
CN113877208A (zh) * | 2020-07-03 | 2022-01-04 | 上海莉莉丝科技股份有限公司 | 游戏对象寻路方法、装置及计算机可读存储介质 |
CN112797983B (zh) * | 2020-12-31 | 2023-10-03 | 广州极飞科技股份有限公司 | 路径规划方法、装置、无人设备及存储介质 |
CN113082714B (zh) * | 2021-03-01 | 2022-08-02 | 上海硬通网络科技有限公司 | 游戏角色的移动路径确定方法、装置及电子设备 |
CN113426103B (zh) * | 2021-07-05 | 2024-10-01 | 网易(杭州)网络有限公司 | 虚拟角色移动控制方法、装置、电子设备及存储介质 |
CN115179282B (zh) * | 2022-07-07 | 2024-08-09 | 珠海格力电器股份有限公司 | 机器人运动轨迹的确定方法、装置及机器人 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07281748A (ja) * | 1994-04-15 | 1995-10-27 | Nippondenso Co Ltd | 自走体の運行方法、及び自走体の運行システム |
FR2964765B1 (fr) * | 2010-09-10 | 2016-04-15 | Thales Sa | Procede de recherche de plus court chemin avec heuristique |
US9259646B2 (en) * | 2011-09-12 | 2016-02-16 | Sony Corporation | Object control device, computer readable storage medium storing object control program, and object control method |
CN104759097A (zh) * | 2015-04-13 | 2015-07-08 | 四川天上友嘉网络科技有限公司 | 游戏中的自动寻路方法 |
CN105138859B (zh) * | 2015-09-30 | 2018-02-16 | 四川师范大学 | 三维全景漫游寻路方法及系统 |
CN106403954B (zh) * | 2016-09-28 | 2020-01-14 | 深圳高科新农技术有限公司 | 无人机自动航迹生成方法 |
CN107952243B (zh) * | 2017-11-29 | 2020-08-04 | 杭州电魂网络科技股份有限公司 | 路径确定方法及装置 |
-
2018
- 2018-07-04 CN CN201810726203.7A patent/CN109011575B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109011575A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109011575B (zh) | 一种自动寻路方法、装置和设备 | |
CN108932331A (zh) | 一种地图数据更新方法、装置及系统 | |
CN106547599B (zh) | 一种资源动态加载的方法及终端 | |
CN107185242B (zh) | 多单位寻路方法及装置 | |
CN108939547B (zh) | 一种最佳路径获取方法、装置、设备及存储介质 | |
CN104764458B (zh) | 一种输出导航路线信息的方法和装置 | |
CN106919918A (zh) | 一种人脸跟踪方法和装置 | |
US11085789B2 (en) | Navigation method, apparatus, and terminal, and storage medium | |
CN104807466A (zh) | 地图信息显示方法及装置 | |
CN105046059B (zh) | 游戏运动轨迹确定方法及装置 | |
CN104112213A (zh) | 推荐信息的方法及装置 | |
CN104035951B (zh) | 显示地图的方法、装置及终端 | |
CN103198234A (zh) | 一种寻路方法和装置 | |
CN109361592A (zh) | 一种即时通信消息处理方法、装置、设备及存储介质 | |
CN104253740A (zh) | 图片签到方法、装置及系统 | |
CN104679509A (zh) | 一种渲染图形的方法和装置 | |
CN109583271A (zh) | 一种对车道线进行拟合的方法、装置及终端 | |
CN106780684A (zh) | 一种动画效果实现方法及装置 | |
CN106250187A (zh) | 一种增强现实ar的信息处理方法、装置及系统 | |
CN104346368A (zh) | 室内场景切换显示方法、装置和移动终端 | |
CN104951637B (zh) | 一种获取训练参数的方法及装置 | |
CN107682825A (zh) | 扫描频率控制方法及相关产品 | |
CN105303591A (zh) | 在拼图上叠加地点信息的方法、终端及服务器 | |
CN103823828A (zh) | 地图比例尺设定方法、装置和终端 | |
US20140324342A1 (en) | Systems and Methods for Path Finding in Maps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 215006 No.68, Qitai Road, Suzhou Industrial Park, Suzhou area, China (Jiangsu) pilot Free Trade Zone, Suzhou City, Jiangsu Province Patentee after: Friendship time Technology Co.,Ltd. Address before: 215006 18 Suhua science and Technology Park, 208 Tong Yuan Road, Suzhou Industrial Park, Jiangsu Patentee before: SUZHOU WANYOU SHIDAI TECHNOLOGY Co.,Ltd. |