CN106730841B - 一种寻路方法和装置 - Google Patents
一种寻路方法和装置 Download PDFInfo
- Publication number
- CN106730841B CN106730841B CN201710032048.4A CN201710032048A CN106730841B CN 106730841 B CN106730841 B CN 106730841B CN 201710032048 A CN201710032048 A CN 201710032048A CN 106730841 B CN106730841 B CN 106730841B
- Authority
- CN
- China
- Prior art keywords
- path
- point
- grid
- projection
- starting point
- 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
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Instructional Devices (AREA)
Abstract
本发明公开了一种寻路方法和装置。其中,该方法包括:采用了将地图离散化为格子,其中,格子为多个;将预存路径投射到格子中得到至少一个投射路径点,其中,投射路径点为预存路径经过的格子;从至少一个投射路径点中查找靠近寻路起点和/或终点的投射路径点,其中,靠近起点的投射路径点为第一路径点,以及靠近终点的投射路径点为第二路径点;构造起点到第一路径点之间起点路径,构造第二路径点到终点的终点路径,构造第一路径点和第二路径点之间的路点路径;根据起点路径、终点路径和路点路径生成从起点到终点的路径。通过本发明现有的寻路方法在寻路时所存在的问题,提供了一种与现有技术不同的寻路方案。
Description
技术领域
本发明涉及地图寻路技术领域,具体而言,涉及寻路方法和装置。
背景技术
目前的***市场中,一般使用寻路的方法有两种:格子寻路、网格寻路,基本基于A*寻路算法,网格寻路需要地形的多边形数据,这些方法都力求于做到最优路径。如今的***寻路方案中,主要有格子寻路、网格寻路、路点寻路。
格子寻路,是指寻出来的路径是固定几个方向的(通常是8方向或者4方向)需要将整个地图划分成若干大小相同的格子。
网格寻路,是指在凸多边形集合里寻找路径,这种方法利用了凸多边形里仍以两点相连也不会穿越自身边界的特性。
路点寻路,是指在地图里布满路点,通过dijkstra等寻找出路径,从其中一个路点到另外一个路点。
上述的几个现有主流游戏中的寻路方案,均有其特性,通常针对不同应用场景来选用不同方案,几个方案有不足之处:
格子寻路得到的路径是固定方向的集合,会使得游戏中的人物移动不自然。而且在贪婪算法下得到的,只是格子地图里的较优或最优解,但是现实中可以朝不同方向,而不限于格子寻路中规定的8个方向或者4个方向。
网格寻路利用了凸多边形,而网格的绘制可以利用大型三维场景的地形来做,生成寻路网格比较方便,而寻路算法的耗时也较少,利用多边形顶点来搜索路径。但是这种方法,通常会使路径沿顶点、沿边,对于路径有一些主观需求的,会变得被动。比如说,在同一个狭窄的通道中,往往不能要求通过的路径是从通道中间穿过,而是根据起点与目标点,有可能贴近其中一边。
路点寻路可以解决上述问题,但是在大范围的地图里,需要布置大量的点。对于需求更改较为频繁、需要微调的游戏开发来说,不太合适。
发明内容
本发明提供了寻路方法和装置,以解决现有的寻路方法在寻路时所存在的问题。
根据本发明实施例的一个方面,提供了一种寻路方法,包括:将地图离散化为格子,其中,所述格子为多个;将预存路径投射到所述格子中得到至少一个投射路径点,其中,所述投射路径点为所述预存路径经过的格子;从所述至少一个投射路径点中查找靠近寻路起点和/或终点的投射路径点,其中,靠近所述起点的投射路径点为第一路径点,以及靠近所述终点的投射路径点为第二路径点;构造所述起点到所述第一路径点之间起点路径,构造所述第二路径点到所述终点的终点路径,构造所述第一路径点和所述第二路径点之间的路点路径;根据起点路径、终点路径和路点路径生成从所述起点到所述终点的路径。
进一步地,将预存路径投射到所述格子中得到至少一个投射路径点之后,从所述至少一个投射路径点中查找第一路径点和第二路径点之前,进行以下步骤:判断所述起点和所述终点之间的连线是否通过有阻挡属性的所述格子,在判断结果为否的情况下,直接将所述起点和所述终点之间的连线作为所述路径,不再进行所述寻路方法的后续步骤;其中,所述阻挡属性用于根据阻挡数据指示每个格子是否有障碍物,所述阻挡数据包括所述地图中的障碍物的数据。
进一步地,从所述至少一个投射路径点中查找第一路径点和第二路径点包括:对所述起点和终点分别做固定范围内的辐射,如果在辐射范围内有所述投射路径点,则将该投射路径点分别作为第一路径点和第二路径点;如果辐射范围内无投射路径点,则以起点向终点进行寻路,寻路过程中第一次遇到的投射路径点作为所述第一路径点;并且以终点向起点进行寻路,寻路过程中第一次遇到的投射路径点作为所述第二路径点。
进一步地,构造所述起点到所述第一路径点之间所述起点路径包括:从所述起点到所述第一路径点进行寻路得到所述起点路径;和/或,构造所述第二路径点到所述终点的终点路径包括:从所述第二路径点到所述终点进行寻路得到所述终点路径;和/或,构造所述第一路径点和所述第二路径点之间的所述路点路径包括:从所述第一路径点到所述第二路径点进行寻路得到所述路点路径。
进一步地,从所述第一路径点到所述第二路径点进行寻路是基于所述第一路径点与所述第二路径点之间的所述预存路径进行寻路。
进一步地,根据起点路径、终点路径和路点路径生成从所述起点到所述终点的路径包括:获取所述起点路径、所述终点路径和所述路点路径上的路径点,所述路径点为构成路径的投射路径点;对所述路径点进行筛选得到筛选后的路径点;根据筛选后的路径点生成所述路径。
进一步地,对所述路径点进行筛选得到所述筛选后的路径点包括:根据路径点之间的连线是否穿越具有阻挡属性的格子来进行筛选。
进一步地,根据所述路径点之间的连线是否穿越具有阻挡属性的格子来筛选路径点包括:将一个路径点作为起始点,判断从所述起始点到与所述起始点间隔一个的路径点的连线是否穿越具有阻挡属性的格子;如果未穿越具有阻挡属性的格子,则去掉起始点与所述起始点间隔一个的路径点之间的路径点,继续检测对从所述起始点到与所述起始点间隔两个的路径点之间的连线是否穿越具有阻挡属性的格子,并确定是否去掉连线之间的路径点,直至待检测的路径点穿越具有阻挡属性的格子,则将所述起始点更换为最后一个未穿越具有阻挡属性的格子的路径点的前一路径点再进行检测。
进一步地,根据路径点之间的连线是否穿越具有阻挡属性的格子来进行筛选包括:判断所述路径点的连线斜率的绝对值,如果斜率绝对值小于等于1,则向水平方向寻找是否具有阻挡属性格子,如果斜率绝对值大于1,则向垂直方向寻找是否具有阻挡属性格子。
根据本发明实施例的另一方面,提供了一种寻路装置。根据本发明的路装置包括:离散单元,将地图离散化为格子,其中,所述格子为多个;投射单元,将预存路径投射到所述格子中得到至少一个投射路径点,其中,所述投射路径点为所述预存路径经过的格子;寻路单元,从所述至少一个投射路径点中查找靠近寻路起点和/或终点的投射路径点,其中,靠近所述起点的投射路径点为第一路径点,以及靠近所述终点的投射路径点为第二路径点;构造单元,构造所述起点到所述第一路径点之间起点路径,构造所述第二路径点到所述终点的终点路径,构造所述第一路径点和所述第二路径点之间的路点路径;生成单元,根据起点路径、终点路径和路点路径生成从所述起点到所述终点的路径。
进一步地,所述寻路单元包括:第一寻路模块,用于对所述起点和终点分别做固定范围内的辐射,如果在辐射范围内有所述投射路径点,则将该投射路径点分别作为第一路径点和第二路径点;第二寻路模块,用于如果辐射范围内无投射路径点,则以起点向终点进行寻路,寻路过程中第一次遇到的投射路径点作为所述第一路径点;并且以终点向起点进行寻路,寻路过程中第一次遇到的投射路径点作为所述第二路径点。
进一步地,所述构造单元包括:第一构造模块,用于从所述起点到所述第一路径点进行寻路得到所述起点路径;和/或,第二构造模块,用于从所述第二路径点到所述终点进行寻路得到所述终点路径;和/或,第三构造模块,用于从所述第一路径点到所述第二路径点进行寻路得到所述路点路径。
进一步地,所述构造单元包括:获取模块,用于获取所述起点路径、所述终点路径和所述路点路径上的路径点,所述路径点为构成路径的投射路径点;筛选模块,用于对所述路径点进行筛选得到筛选后的路径点;生成模块,用于根据筛选后的路径点生成所述路径。
进一步地,所述筛选模块包括:标记子模块,用于根据阻挡数据来标记格子阻挡属性,其中,所述阻挡数据包括:地图中的障碍物的数据,所述阻挡属性用于指示每个格子是否有障碍物;第一判断子模块,用于判断所述起点和所述终点之间的连线是否通过有阻挡属性的所述格子,如果是则对所述路径点进行筛选,根据筛选后的路径点生成路径。
进一步地,所述筛选模块包括:第二判断子模块,用于判断所述起点和所述终点之间的连线是否穿过具有阻挡属性的所述格子,如果是则将所述起点作为所述第一路径点,并且将所述终点作为所述第二路径点,将所述起点和所述终点之间的连线作为所述路径。
进一步地,所述筛选模块包括:筛选子模块,用于根据路径点之间的连线是否穿越具有阻挡属性的格子来进行筛选。
进一步地,所述筛选子模块包括:第三判断子模块,用于将一个路径点作为起始点,判断从所述起始点到与所述起始点间隔一个的路径点的连线是否穿越具有阻挡属性的格子;检测子模块,用于如果未穿越具有阻挡属性的格子,则去掉起始点与所述起始点间隔一个的路径点之间的路径点,继续检测对从所述起始点到与所述起始点间隔两个的路径点之间的连线是否穿越具有阻挡属性的格子,并确定是否去掉连线之间的路径点,直至待检测的路径点穿越具有阻挡属性的格子,则将所述起始点更换为最后一个未穿越具有阻挡属性的格子的路径点的前一路径点再进行检测。
进一步地,所述筛选子模块包括:第四判断子模块,用于判断所述路径点的连线斜率的绝对值,如果斜率绝对值小于等于1,则向水平方向寻找是否具有阻挡属性格子,如果斜率绝对值大于1,则向垂直方向寻找是否具有阻挡属性格子。
根据发明实施例,采用了将地图离散化为格子,其中,所述格子为多个;将预存路径投射到所述格子中得到至少一个投射路径点,其中,所述投射路径点为所述预存路径经过的格子;从所述至少一个投射路径点中查找靠近寻路起点和/或终点的投射路径点,其中,靠近所述起点的投射路径点为第一路径点,以及靠近所述终点的投射路径点为第二路径点;构造所述起点到所述第一路径点之间起点路径,构造所述第二路径点到所述终点的终点路径,构造所述第一路径点和所述第二路径点之间的路点路径;根据起点路径、终点路径和路点路径生成从所述起点到所述终点的路径。通过本发明现有的寻路方法在寻路时所存在的问题,提供了一种与现有技术不同的寻路方案。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种寻路方法的流程图;
图2是根据本发明实施例的预处理流程图;
图3是根据本发明实施例的一种寻路方法的具体过程流程图;
图4是根据本发明实施例的一种寻路装置的示意图;
图5是根据本发明实施例的筛选后的路径示意图;
图6是根据本发明实施例的投射路径点不构成最优解时进行筛选后的路径示意图;
图7是根据本发明实施例的在没有投射路径的情况下筛选后的路径示意图;
图8是根据本发明实施例的游戏中的寻路路径示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种寻路方法。图1是根据本发明实施例的一种寻路方法的流程图。如图1所示,该方法包括步骤如下:
步骤S102,将地图离散化为格子,其中,格子为多个;
本实施例将地图离散化为格子是为了预先将地图分割为多个相同大小的格子,现有技术中使用将地图进行格子寻路存在移动方向不灵活的弊端,而本实施例是将地图离散化为格子作为寻路前的预处理,从而以格子为单位从而减少运算量。
步骤S104,将预存路径投射到格子中得到至少一个投射路径点,其中,投射路径点为预存路径经过的格子;
设置预存路径可以增加MMO游戏中的社交互动,在一个大型地图中,玩家相遇的可能性比较低,当设置预存路径后,不论玩家如何行走,都在预存路径周围移动,玩家的分布比较集中可以增加玩家之间相遇的概率,从而增加了MMO游戏中的社交互动及基于社交的游戏玩法,同时不会消耗更多的内存,提高了运算速度。
步骤S106,从至少一个投射路径点中查找靠近寻路起点和/或终点的投射路径点,其中,靠近起点的投射路径点为第一路径点,以及靠近终点的投射路径点为第二路径点;
步骤S108,构造起点到第一路径点之间起点路径,构造第二路径点到终点的终点路径,构造第一路径点和第二路径点之间的路点路径;
步骤S110,根据起点路径、终点路径和路点路径生成从起点到终点的路径。在上述步骤,通过先将地图进行离散化的初步划分,将地图化分为多个格子,将提前预存好的路径投射到格子中得到投射路径点,分别利用起点、终点与附近的投射路径点构造三段路径,最后将三段路径合并得到最终的寻路路径,上述步骤提供了一种与现有技术不同的寻路方案。解决了现有技术在大场景游戏中采用格子寻路、网格寻路以及路点寻路时所存在的路径不灵活、不贴合实际、不方便扩展的问题,使得路径像路点寻路那样贴合,加强了角色行走间的社交互动,又有自由的寻路范围可以方便地支持扩展。如果MMO游戏中对社交要求较高,需要在路径上像路点寻路那样尽可能地集中寻路轨迹,又需要考虑到大场景的角色自由移动,并且考虑到整个地图的可扩展性,比如在大航海场景中,后续有需求合成一个球体地图(地球)。以上技术方案足以满足这些需求。
例如:在一个大型场景里,利用格子划分,将场景地图离散化,并将预先绘制的行走路径投射到离散化的格子地图里;预存路径由点元组构成,“点”即附图中实心直线的各个交点,投影到格子中的是附图中的实心直线,投射到离散的格子中后,被直线投射到的格子的属性变成航线路径,这些格子被定义为“投射路径点”
在进行格子划分时,将地图中的世界按照一定分辨率进行划分格子,格子属性可以是有阻挡的、无阻挡可行走通过的的其中一种,即格子有阻挡属性、没有阻挡属性;再在其中利用对起点、终点的航线贴近,尝试找出附近的投射路径点;然后再将这两点,进行A*寻路(或者也可以使用其他的寻路方式),得到三段路径,将他们连接起来,就可以得到一个路径,该路径可以直接使用,但是如果直接使用的话可能不是最优的,此时,作为一个可选的方式,该路径也可以作为初步寻路路径,然后再进行处理。其中,所述阻挡属性用于根据阻挡数据指示每个格子是否有障碍物,所述阻挡数据包括所述地图中的障碍物的数据。
上述预存路径在每个格子中进行投射的具体方式,在一个可选的实施方式中,预存路径包括多个预存路径点,将预存路径投射为投射路径点,首先,在划分完多个格子后,将预存路径点的连线投影到格子中,当投射到离散的格子中后,被直线投射到的格子的属性变成点,这些格子就是投射路径点。本实施例可以针对静态寻路,这种思路也可以应用到动态寻路中。在静态寻路中,由于目标点、障碍物是固定的,这种寻路方式可以得到比较优的路径。在动态寻路中,目标点、障碍物不是固定的,是可以随意移动的,此时可以针对一段相对静止的部分来进行寻路。例如,在动态地图中,如果一个作为障碍的动物在A点和B点之间行走,此时可以将A点到B点的一块区域作为一个整体的障碍物,在寻路的时候避免在A点到B点之间的区域即可。在该例子中,虽然是一个动态的地图,但是可以采用相对静态的处理方式。
上述步骤中的障碍物可以为阻碍行走人物或移动物品行走路线上的物体,该物体在地图中预先存储好了数据标志障碍物,即阻挡数据。每个格子的阻挡属性可以是指计算整个格子的中心的阻挡数据,也可以是指计算每个格子边缘的阻挡数据。例如,如果格子划分的比较小的情况下,此时判断一个路径是否穿过该格子,只需要判断该路径上距离格子中心最近的点是否小于阈值即可,此时,阻挡数据其实就是格子中心点的坐标。又例如,如果格子比较大的情况,此时判断一个路径是否穿过该格子,则需要判断该路径上的点是否落入到该格子的范围之内,此时需要根据格子的每个边来进行判断,此时阻挡数据可以至格子边缘的数据。
在一个可选的实施方式中,预存路径的数据格式为一定数量的点元组,每个元组包括两个坐标点,至少其中一个点与其他元组的点相连通。此时可以在进行路径投射时,将预存路径的每个点元组形成的直线,在格子化的地图中进行投影,将直线的投影所覆盖的格子属性变为投射路径点。通过上述预存路径的投射,将路径进行初步的划分,减少了后续的运算量和寻路存储量,并且投射的过程是根据障碍物进行的投射,更加准确贴近实际。
当对预存路径进行预处理后,也就是将预存路径投射到格子中得到至少一个投射路径点之后,从所述至少一个投射路径点中查找第一路径点和第二路径点之前,可先判断终点与起点之间的连线是否通过具有阻挡属性的格子,也就是判断下起点和终点之间是否有阻挡,在判断结果为否的情况下,直接将起点和终点之间的连线作为路径,不再进行所述寻路方法的后续步骤,因为后续步骤即使全部进行,其最终的寻路结果,即所述路径,也将是起点和终点之间的连线。在上述判断结果为是的情况下,也就是在有阻挡时才需要进行所述寻路方法的后续步骤。故上述判断步骤可在一定程度上节省计算资源。
在一个可选的实施方式中,寻路可以包括以下几种情况:一种情况是在预存路径的在每个格子中进行投射后需要寻找起点周围的路径和终点周围的路径,也就是寻找靠近起点的投射路径点作为第一路径点,以及靠近终点的投射路径点作为第二路径点。也存在这样一种情况,即第一路径点和第二路径点是一个路径点,此时,第一路径点和第二路径点之间的路径可以认为是一个为零的路径,也有一种情况,从起点直接找到终点,即没有查找到任何路径点,此时可以认为路径已经生成了。对于查找第一路径点和第二路径点的方式有很多种,在本实施例中列举了其中的一种如下:
对起点和终点分别做固定范围内的辐射,如果在辐射范围内有投射路径点,则将该投射路径点分别作为第一路径点和第二路径点;如果辐射范围内无投射路径点,则以起点向终点进行寻路,寻路过程中第一次遇到的投射路径点作为第一路径点;以终点向起点进行寻路,寻路过程中第一次遇到的投射路径点作为第二路径点。
举例进行说明上述步骤,在寻路起点S与终点D,分别做固定范围的“米”字型辐射,如果在起点的辐射范围内有投射路径的投射路径点,则记录下该点作为起点的航线接入点M0,起点的航线接入点M0,就是指第一路径点记为M0;航线指投射的路径点。
如果在终点的辐射范围内有投射路径的投射路径点,则记录下该点作为终点的航线接入点M1,终点的航线接入点M1,就是指第二路径点记为M1;航线指投射的路径点。
如果辐射范围内未找到航线接入点,则以该点(该点可以是起点也可以是终点)向另一个点(可以是终点也可以是起点)进行寻路,寻路可以是A*算法,在此过程中如果碰到航线点(即预存路径的投射路径点),立即停止,并记录此点为该点的航线接入点M0或者M1,其中经过路径为L0、L1。如果未能找到航线点而直接贪婪到对端点,(对端点是指起点或者终点)说明路径已经生成,且距离较短。
通过局部寻找第一路径点和第二路径点,在游戏进行扩展时,很方便的就可以进行,只要根据已有的投射路径点,增加新的投射路径点,根据投射路径点寻找新的局部的第一路径点和第二路径点即可。
寻找第一路径点和第二路径点后,需要根据第一路径点第二路径点,以及起点和终点构造寻路的路径,在一个可选的实施方式中,构造起点到第一路径点之间起点路径可以不使用寻路算法,直接将这几个点连接起来,这种做法比较简单,但是最终形成的路径可能不是最优的。在一个可选的实施中,可以采用寻路算法,即从起点到第一路径点进行寻路得到起点路径;和/或,构造第二路径点到终点的终点路径包括:从第二路径点到终点进行寻路得到终点路径;和/或,构造第一路径点和第二路径点之间的路点路径包括:从第一路径点到第二路径点进行寻路得到路点路径。由于采用了寻路算法,得到的路径较优。
下面以采用的寻路算法为A*算法,举例对上述过程结合图3进行说明:
首先对记录的两个航线接入点M0和M1(即第一路径点和第二路径点)做一次A*寻路,只在投影的航线上贪婪搜索,得到路径L2。由于这一个步骤只在航线(预存路径点的投射路径点)上搜索路径,固消耗非常小。然后将起点到第一路径点、两个航线点间、终点到第二路径点这3段路径(L0、L2、L1)合并,生成初始的路径L3。
通过上述实施方式,得到了可以随时进行扩展的路径,路径的扩展基于预存路径点的投射路径点,如果路径地图改变时,可以只对三段路径中的一段需要的路径进行重新规划路径,从而也减少运算量,方便扩展。
例如,如图2所示,当要对地图进行扩展时,新生成的路径,可以基于已经处理好的投射路径点(航线投射预处理)进行上述步骤的寻路,找到三段路径,从而合并得到寻路结果,即所需要的新成的路径。
在一个可选的实施方式中,从第一路径点到第二路径点进行寻路是基于第一路径点与第二路径点之间的预存路径进行寻路。
通过该实施方式,当地图进行扩展时,基于预存路径进行寻路可达到减少计算量,提高***运行速度。在生成初始的路径后,还可以对该初始的路径,进行进一步的精细化,使得路径更贴近实际,具体的在一个可选的实施方式中,根据起点路径、终点路径和路点路径生成从起点到终点的路径包括:获取起点路径、终点路径和路点路径上的路径点;对路径点进行筛选得到筛选后的路径点;根据筛选后的路径点生成路径。如图5所示,图5是筛选后的路径示意图,实线代表投射路径点连成的投射路径,虚线代表经过进一步精细化筛选后得到的路径,短细线是代表被筛选掉的路径点的路径。
在上述步骤进行筛选时有一定的筛选标准,在一个可选的实施方式中,根据路径点之间的连线是否穿越具有阻挡属性的格子来进行筛选,其具体步骤包括:
将一个路径点作为起始点,判断从起始点到与起始点间隔一个的路径点的连线是否穿越具有阻挡属性的格子;如果未穿越具有阻挡属性的格子,则去掉起始点与起始点间隔一个的路径点之间的路径点,继续进行检测,
当继续进行检测运算时有两种运算方式:第一种是继续检测对从起始点到与起始点间隔两个的路径点之间的连线是否穿越具有阻挡属性的格子,并确定是否去掉连线之间的路径点,然后再检测从起始点距离起始点间隔三个的路径点之间的连线是否穿越具有阻挡属性的格子直至待检测的路径点穿越具有阻挡属性的格子,则将起始点更换为最后一个未穿越具有阻挡属性的格子的路径点的前一路径点再进行检测。
下面举例对第一种方式进行说明:假设初始寻路出来的路径包括a,b,c,d,e,f这些点。那么裁剪过程应该是:a与c尝试裁剪掉b,假如可裁掉b,可裁掉b就是指a与c的连线没有穿越有阻挡属性的格子;那么a与d尝试裁掉c,假如不可裁掉c,那么中间路径变为:a,c,d,e,f;不可裁掉c的意思是指a与d之间的连线穿越了有阻挡属性的格子。在第一种方式中起始点是会跳变的,当寻找到穿越了阻挡的路径点时,起始点进行跳变,变为最后一个未穿越具有阻挡属性的格子的路径点的前一路径点再进行检测,在此例子中新的起始点就为c,,然后接着以c为新的起始点尝试裁掉c与e的中间点d,假如d可裁剪,尝试裁剪e,加入e可裁剪,则最终路径为a,c,f.(裁剪掉了b,d,e)。
第二种是寻找与刚才所检测的路径点隔一个的路径点,继续判断刚才所检测的路径点与跟它隔一个的路径点的连线是否穿越阻挡,如果未穿越阻挡,表明没有阻碍,则继续放弃中间的路径点,直至待检测的路径点穿过了阻挡则记录待检测路径点前一路径点,不再抛弃待检测路径点的前一路径点,同时更换待检测的起始点,则将起始点更换为最后一个未穿越具有阻挡属性的格子的路径点再进行检测。
对上述步骤以第一种检测预算方式进行举例说明,在将三段路径合并成初始路径后,对初始路径进行进一步的筛选平滑处理,最终达到拉直不穿越阻挡的点,去掉中间的路径点,形成平滑的线。具体为:
以起始点开始,起始点可以是起点也可以是某一路径点,先检测与该起始点隔一个路径点进行穿越阻挡判断。如果未穿越阻挡,说明该起始点和待检测的路径点中间没有阻碍物,则抛弃该起始点和隔一个的路径点中间的那个路径点,此处的目的是判断某一路径点是否穿越阻挡,如果没有阻挡物也就是没有穿越阻挡,也就可以看成是,从起始点到隔一个路径点中间的路径点也没有阻挡物,也没有穿越阻挡,是彼此相连通的,也就没有必要留下中间的路径点(起始点和检测的路径点之间的那个路径点)。
然后继续往后跨点运算,寻找与刚才所检测的路径点隔一个的路径点,继续判断是否穿越阻挡,如果未穿越阻挡,表明没有阻碍,则继续放弃中间的路径点,直至起始点与待检测的路径点的连线穿过了阻挡则记录待检测路径点前一路径点,不再抛弃待检测路径点的前一路径点,同时重新选取检测起始点,该起始点为检测到的最后一个未穿越具有阻挡属性的格子的路径点,对点进行上述步骤的检测,抛弃没有阻碍的路径点,留下有阻碍路径点的前一个路径点,达到平滑路径点的效果,为了取得更好的平滑效果,上述起始点的选取可以选取第一路径点或者第二路径点这样需要平滑的路径点后面一段的路径点作为检测的起始点,并连线进行检测投射路径点后的一段距离从而可以实现平滑上航线的效果。通过上述步骤中筛选路径点的过程去除了网格寻路带来的锯齿,同时缩减了路径存储数据,减轻网络传输负担,可以用于服务器的离线寻路过程模拟。通过筛选后最终得到的路径,兼顾了走投射路径和走优化路径的两点,使游戏中的角色能够较自然地行走,也能够让更多的游戏角色走相近的路线,增加角色的路径重合线段,加强游戏中的社交。
在根据投射路径点构成初始路径后,对初始路径进行筛选,选出最佳路径,去掉不合要求的路径点后,会有几种结果,除了筛选后的路径的点基本落在投射路径点的情况如图5中所示,还可能出现以下情况:
如图6所示,图6是当本实施例的投射路径点不构成最优解时,也就是最后的最优路径不落投射路径点构成的路径上的时候,在进行筛选后的路径如图6,实线代表投射路径点点连成的投射路径,虚线代表经过进一步精细化筛选后得到的路径,短细线是代表被筛选掉的路径点的路径;
如图7所示,图7是当本实施例在没有投射路径的情况下筛选后的路径示意图,虚线代表经过进一步精细化筛选后得到的路径,短细线是代表被筛选掉的路径点的路径。
判断格子阻挡属性的具体方法,在一个可选的实施方式中,根据路径点之间的连线是否穿越具有阻挡属性的格子来进行筛选包括:判断路径点的连线斜率的绝对值,如果斜率绝对值小于等于1,则向水平方向寻找是否具有阻挡属性格子,如果斜率绝对值大于1,则向垂直方向寻找是否具有阻挡属性格子。
举例进行说明当待判断的两个路径点连线穿越相邻的格子有阻挡时,阻挡的格子时难以确定是哪一个格子有阻挡的,此时,计算两个路径点连线的斜率,根据斜率来确定寻找的方向,比如斜率是0.5,则水平从起始的路径点寻找具有阻挡属性的格子,水平寻找时,一旦遇到有阻挡属性的格子,则视为穿越阻挡。
通过上述判断路径点连线斜率的方式可以准确的移动找到有阻碍属性的格子,并且比较贴合实际上的阻碍物的位置,及所选的路径,使得路径的选取更加灵活和自然。
上述实施例中提出的通过网格划分、预处理投射航线、后期路径裁剪相结合的自动寻路方法,该方法可使MMORPG类型游戏中的角色贴近寻路航线行走,加强玩家社交互动,又有较平滑的行走路径,同时不会消耗过多性能,适合在***中运用。
图8是游戏中的寻路路径示意图,虚线即为游戏里的寻路路径,在此路径上,可以有更多的玩家在此路径上相会,有利于更多社交玩法的开展(如贸易航线上的玩家抢夺、护航等)
本发明实施例还提供了一种寻路装置。该装置可以通过离散单元、投射单元、寻路单元、构造单元和生成单元实现其功能。需要说明的是,本发明实施例的一种寻路装置可以用于执行本发明实施例所提供的一种寻路方法,本发明实施例的一种寻路方法也可以通过本发明实施例所提供的一种寻路装置来执行。
图4是根据本发明实施例的一种寻路装置的示意图。如图4所示,一种寻路装置包括:
离散单元42,将地图离散化为格子,其中,格子为多个;
投射单元44,将预存路径投射到格子中得到至少一个投射路径点,其中,投射路径点为预存路径经过的格子;
寻路单元46,从至少一个投射路径点中查找靠近寻路起点和/或终点的投射路径点,其中,靠近起点的投射路径点为第一路径点,以及靠近终点的投射路径点为第二路径点;
构造单元48,构造起点到第一路径点之间起点路径,构造第二路径点到终点的终点路径,构造第一路径点和第二路径点之间的路点路径;
生成单元410,根据起点路径、终点路径和路点路径生成从起点到终点的路径。
在一个可选的实施方式中,寻路单元包括:
第一寻路模块,用于对起点和终点分别做固定范围内的辐射,如果在辐射范围内有投射路径点,则将该投射路径点分别作为第一路径点和第二路径点;
第二寻路模块,用于如果辐射范围内无投射路径点,则以起点向终点进行寻路,寻路过程中第一次遇到的投射路径点作为第一路径点;并且以终点向起点进行寻路,寻路过程中第一次遇到的投射路径点作为第二路径点。
在一个可选的实施方式中,构造单元包括:
第一构造模块,用于从起点到第一路径点进行寻路得到起点路径;和/或,
第二构造模块,用于从第二路径点到终点进行寻路得到终点路径;和/或,
第三构造模块,用于从第一路径点到第二路径点进行寻路得到路点路径。
在一个可选的实施方式中,构造单元包括:
获取模块,用于获取起点路径、终点路径和路点路径上的路径点,路径点为构成路径的投射路径点;
筛选模块,用于对路径点进行筛选得到筛选后的路径点;
生成模块,用于根据筛选后的路径点生成路径。
在一个可选的实施方式中,筛选模块包括:
标记子模块,用于根据阻挡数据来标记格子阻挡属性,其中,阻挡数据包括:地图中的障碍物的数据,阻挡属性用于指示每个格子是否有障碍物;
第一判断子模块,用于判断起点和终点之间的连线是否通过有阻挡属性的格子,如果是则对路径点进行筛选,根据筛选后的路径点生成路径。
在一个可选的实施方式中,筛选模块还包括:
第二判断子模块,用于判断起点和终点之间的连线是否穿过具有阻挡属性的格子,如果是则将起点作为第一路径点,并且将终点作为第二路径点,将起点和终点之间的连线作为路径。
在一个可选的实施方式中,筛选模块还包括:
筛选子模块,用于根据路径点之间的连线是否穿越具有阻挡属性的格子来进行筛选。
在一个可选的实施方式中,筛选子模块包括:
第三判断子模块,用于将一个路径点作为起始点,判断从起始点到与起始点间隔一个的路径点的连线是否穿越具有阻挡属性的格子;
检测子模块,用于如果未穿越具有阻挡属性的格子,则去掉起始点与起始点间隔一个的路径点之间的路径点,继续检测对从起始点到与起始点间隔两个的路径点之间的连线是否穿越具有阻挡属性的格子,并确定是否去掉连线之间的路径点,直至待检测的路径点穿越具有阻挡属性的格子,则将起始点更换为最后一个未穿越具有阻挡属性的格子的路径点的前一路径点再进行检测。
在一个可选的实施方式中,筛选子模块还包括:
第四判断子模块,用于判断路径点的连线斜率的绝对值,如果斜率绝对值小于等于1,则向水平方向寻找是否具有阻挡属性格子,如果斜率绝对值大于1,则向垂直方向寻找是否具有阻挡属性格子。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种寻路方法,其特征在于,包括:
将地图离散化为格子,其中,所述格子为多个;
将预存路径投射到所述格子中得到至少一个投射路径点,其中,所述投射路径点为所述预存路径经过的格子;
从所述至少一个投射路径点中查找靠近寻路起点和/或终点的投射路径点,其中,靠近所述起点的投射路径点为第一路径点,以及靠近所述终点的投射路径点为第二路径点;
构造所述起点到所述第一路径点之间起点路径,构造所述第二路径点到所述终点的终点路径,构造所述第一路径点和所述第二路径点之间的路点路径;
根据所述起点路径、所述终点路径和所述路点路径生成从所述起点到所述终点的路径;
其中,根据所述起点路径、所述终点路径和所述路点路径生成从所述起点到所述终点的路径包括:获取所述起点路径、所述终点路径和所述路点路径上的路径点,所述路径点为构成路径的投射路径点;对所述路径点进行筛选得到筛选后的路径点;根据筛选后的所述路径点生成所述路径;
其中,对所述路径点进行筛选得到所述筛选后的路径点包括:根据路径点之间的连线是否穿越具有阻挡属性的格子来进行筛选;其中,所述阻挡属性用于根据阻挡数据指示每个格子是否有障碍物,所述阻挡数据包括所述地图中的障碍物的数据。
2.根据权利要求1所述的方法,其特征在于,将预存路径投射到所述格子中得到至少一个投射路径点之后,从所述至少一个投射路径点中查找第一路径点和第二路径点之前,进行以下步骤:
判断所述起点和所述终点之间的连线是否通过有阻挡属性的所述格子,在判断结果为否的情况下,直接将所述起点和所述终点之间的连线作为所述路径,不再进行所述寻路方法的后续步骤;
其中,所述阻挡属性用于根据阻挡数据指示每个格子是否有障碍物,所述阻挡数据包括所述地图中的障碍物的数据。
3.根据权利要求1所述的方法,其特征在于,从所述至少一个投射路径点中查找第一路径点和第二路径点包括:
对所述起点和终点分别做固定范围内的辐射,如果在辐射范围内有所述投射路径点,则将该投射路径点分别作为第一路径点和第二路径点;
如果辐射范围内无投射路径点,则以起点向终点进行寻路,寻路过程中第一次遇到的投射路径点作为所述第一路径点;并且以终点向起点进行寻路,寻路过程中第一次遇到的投射路径点作为所述第二路径点。
4.根据权利要求1所述的方法,其特征在于,
构造所述起点到所述第一路径点之间所述起点路径包括:从所述起点到所述第一路径点进行寻路得到所述起点路径;和/或,
构造所述第二路径点到所述终点的终点路径包括:从所述第二路径点到所述终点进行寻路得到所述终点路径;和/或,
构造所述第一路径点和所述第二路径点之间的所述路点路径包括:从所述第一路径点到所述第二路径点进行寻路得到所述路点路径。
5.根据权利要求4所述的方法,其特征在于,从所述第一路径点到所述第二路径点进行寻路是基于所述第一路径点与所述第二路径点之间的所述预存路径进行寻路。
6.根据权利要求1所述的方法,其特征在于,根据所述路径点之间的连线是否穿越具有阻挡属性的格子来筛选路径点包括:
将一个路径点作为起始点,判断从所述起始点到与所述起始点间隔一个的路径点的连线是否穿越具有阻挡属性的格子;
如果未穿越具有阻挡属性的格子,则去掉起始点与所述起始点间隔一个的路径点之间的路径点,继续检测对从所述起始点到与所述起始点间隔两个的路径点之间的连线是否穿越具有阻挡属性的格子,并确定是否去掉连线之间的路径点,直至待检测的路径点穿越具有阻挡属性的格子,则将所述起始点更换为最后一个未穿越具有阻挡属性的格子的路径点的前一路径点再进行检测。
7.根据权利要求1 或6 所述的方法,其特征在于,根据路径点之间的连线是否穿越具有阻挡属性的格子来进行筛选包括:
判断所述路径点的连线斜率的绝对值,如果斜率绝对值小于等于1,则向水平方向寻找是否具有阻挡属性格子,如果斜率绝对值大于1,则向垂直方向寻找是否具有阻挡属性格子。
8.一种寻路装置,其特征在于,包括:
离散单元,将地图离散化为格子,其中,所述格子为多个;
投射单元,将预存路径投射到所述格子中得到至少一个投射路径点,其中,所述投射路径点为所述预存路径经过的格子;
寻路单元,从所述至少一个投射路径点中查找靠近寻路起点和/或终点的投射路径点,其中,靠近所述起点的投射路径点为第一路径点,以及靠近所述终点的投射路径点为第二路径点;
构造单元,构造所述起点到所述第一路径点之间起点路径,构造所述第二路径点到所述终点的终点路径,构造所述第一路径点和所述第二路径点之间的路点路径;
生成单元,根据起点路径、终点路径和路点路径生成从所述起点到所述终点的路径;
其中,构造单元包括:获取模块,用于获取起点路径、终点路径和路点路径上的路径点,路径点为构成路径的投射路径点;筛选模块,用于对路径点进行筛选得到筛选后的路径点;生成模块,用于根据筛选后的路径点生成路径;
其中,筛选模块包括:标记子模块,用于根据阻挡数据来标记格子阻挡属性,其中,阻挡数据包括:地图中的障碍物的数据,阻挡属性用于指示每个格子是否有障碍物;第一判断子模块,用于判断起点和终点之间的连线是否通过有阻挡属性的格子,如果是则对路径点进行筛选,根据筛选后的路径点生成路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710032048.4A CN106730841B (zh) | 2017-01-17 | 2017-01-17 | 一种寻路方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710032048.4A CN106730841B (zh) | 2017-01-17 | 2017-01-17 | 一种寻路方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106730841A CN106730841A (zh) | 2017-05-31 |
CN106730841B true CN106730841B (zh) | 2020-10-27 |
Family
ID=58946998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710032048.4A Active CN106730841B (zh) | 2017-01-17 | 2017-01-17 | 一种寻路方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106730841B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108176050B (zh) * | 2017-12-07 | 2020-11-13 | 北京像素软件科技股份有限公司 | 寻路方法和装置 |
CN108079580B (zh) * | 2017-12-20 | 2020-09-29 | 苏州蜗牛数字科技股份有限公司 | 一种寻路方法及终端 |
CN108229734A (zh) * | 2017-12-26 | 2018-06-29 | 北京像素软件科技股份有限公司 | 路径规划方法及装置 |
CN108815850B (zh) * | 2018-06-15 | 2021-01-05 | 腾讯科技(深圳)有限公司 | 一种控制模拟对象寻路的方法及客户端 |
CN111736582B (zh) * | 2019-03-19 | 2024-06-21 | 北京奇虎科技有限公司 | 路径处理方法、装置、电子设备及计算机可读存储介质 |
CN110755848B (zh) * | 2019-11-06 | 2023-09-15 | 网易(杭州)网络有限公司 | 一种游戏中的寻路方法、终端及可读存储介质 |
CN110812844B (zh) * | 2019-11-06 | 2023-04-07 | 网易(杭州)网络有限公司 | 一种游戏中的寻路方法、终端及可读存储介质 |
CN110917624B (zh) * | 2019-12-06 | 2024-01-23 | 珠海海鸟科技有限公司 | 路径确定方法、装置及设备 |
CN111026163B (zh) * | 2019-12-20 | 2021-10-26 | 华南理工大学 | 一种面向室内的失控放射源自主搜寻机器人及其搜寻方法 |
CN111013146B (zh) * | 2019-12-25 | 2024-02-23 | 北京像素软件科技股份有限公司 | 超大地图的可动态修改的寻路导航方法和装置 |
CN111210061A (zh) * | 2019-12-31 | 2020-05-29 | 咪咕文化科技有限公司 | 指引方法、设备、***和计算机可读存储介质 |
CN111228804B (zh) * | 2020-02-04 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 在虚拟环境中驾驶载具的方法、装置、终端及存储介质 |
CN112044074B (zh) * | 2020-09-04 | 2024-06-11 | 网易(杭州)网络有限公司 | 对非玩家角色寻路的方法、装置、存储介质及计算机设备 |
CN117899482A (zh) * | 2021-04-20 | 2024-04-19 | 网易(杭州)网络有限公司 | 游戏的寻路控制方法、装置、处理设备及存储介质 |
CN116764225A (zh) * | 2023-06-09 | 2023-09-19 | 广州三七极梦网络技术有限公司 | 一种高效寻路的处理方法、装置、设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008076593A (ja) * | 2006-09-20 | 2008-04-03 | Hirotsu Sokichi | 略地図生成装置および略地図生成方法 |
JP4985309B2 (ja) * | 2007-10-22 | 2012-07-25 | ソニー株式会社 | 表示ルート作成方法、表示ルート作成装置及び表示ルート作成プログラム |
US9109915B2 (en) * | 2012-06-29 | 2015-08-18 | Navteq B.V. | Method and apparatus for route selection based on recorded and calculated routes |
CN104216405B (zh) * | 2013-06-04 | 2017-12-29 | 内蒙古大学 | 田间机器人的导航方法及设备 |
CN104215237A (zh) * | 2013-06-05 | 2014-12-17 | 北京掌尚无限信息技术有限公司 | 室内地图导航线路指引算法 |
CN106092083B (zh) * | 2016-05-31 | 2019-04-12 | 深圳市威必达有害生物防治有限公司 | 一种无人机路径规划管理***及方法 |
-
2017
- 2017-01-17 CN CN201710032048.4A patent/CN106730841B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106730841A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106730841B (zh) | 一种寻路方法和装置 | |
JP6828044B2 (ja) | ルート逸脱認識方法、端末、および記憶媒体 | |
CN107198883B (zh) | 用于虚拟游戏中游戏对象的寻路方法及装置 | |
CN1841022B (zh) | 导航*** | |
CN106582023B (zh) | 一种游戏寻路方法和装置 | |
CN105222793B (zh) | 一种基于矢量地图数据模型的城市层次化区域划分方法 | |
JP2018534647A (ja) | レーザ点群に基づく都市道路の認識方法、装置、記憶媒体及び機器 | |
CN105701798A (zh) | 柱状物体的点云提取方法及装置 | |
CN109839119B (zh) | 跨路桥梁桥面区域的获取方法及装置 | |
CN107917716B (zh) | 固定线路导航方法、装置、终端及计算机可读存储介质 | |
CN113741453A (zh) | 一种非结构化环境的路径规划方法、装置、设备和介质 | |
JP2012073397A (ja) | 3次元地図表示システム | |
CN112325889B (zh) | 导航提示信息的确定方法和装置、存储介质及电子设备 | |
CN103914877A (zh) | 一种基于扩展合并的三维模型多细节层次结构 | |
CN111773717A (zh) | 对象控制方法和装置、存储介质和电子装置 | |
CN112231428B (zh) | 一种融合战场态势信息的车辆路径规划方法 | |
US11241621B2 (en) | Non-transitory computer-readable medium and video game processing system | |
CN114415654A (zh) | 一种脱困路径的生成方法及设备 | |
KR101766640B1 (ko) | 이동체의 기준 경로 계산 장치 및 방법 | |
CN112381078B (zh) | 基于高架的道路识别方法、装置、计算机设备和存储介质 | |
CN117109623A (zh) | 一种智能穿戴式导航交互方法、***及介质 | |
CN107970610B (zh) | 一种3d场景垂直空间飞行路线的规划方法和装置 | |
CN115920401A (zh) | 寻路方法、装置、电子设备及可读存储介质 | |
US11406898B2 (en) | Non-transitory computer-readable medium and video game processing system | |
JP2010054754A (ja) | 地図データのデータ構造 |
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 |