CN110917624A - 路径确定方法、装置及设备 - Google Patents

路径确定方法、装置及设备 Download PDF

Info

Publication number
CN110917624A
CN110917624A CN201911254537.XA CN201911254537A CN110917624A CN 110917624 A CN110917624 A CN 110917624A CN 201911254537 A CN201911254537 A CN 201911254537A CN 110917624 A CN110917624 A CN 110917624A
Authority
CN
China
Prior art keywords
grid
mesh
position information
merged
feature data
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.)
Granted
Application number
CN201911254537.XA
Other languages
English (en)
Other versions
CN110917624B (zh
Inventor
叶进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Haibird Technology Co Ltd
Original Assignee
Zhuhai Haibird Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Haibird Technology Co Ltd filed Critical Zhuhai Haibird Technology Co Ltd
Priority to CN201911254537.XA priority Critical patent/CN110917624B/zh
Publication of CN110917624A publication Critical patent/CN110917624A/zh
Application granted granted Critical
Publication of CN110917624B publication Critical patent/CN110917624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing 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)
  • Processing Or Creating Images (AREA)
  • Navigation (AREA)

Abstract

本发明提供路径确定方法、装置及设备,其中,方法包括:获取网格地图中满足目标条件的第一网格和第二网格,所述目标条件包括:所述第一网格和所述第二网格的面积均小于第一阈值,所述第一网格包括至少三条第一边,所述第二网格包括至少三条第二边,所述至少三条第一边中存在一条第一边和所述至少三条第二边中的一条第二边相邻;对所述第一网格和所述第二网格进行合并处理,得到合并网格;根据所述第一网格的特征数据和所述第二网格的特征数据,确定所述合并网格的特征数据;根据所述合并网格的特征数据,计算目标物体在所述合并网格的导航路径。该技术方案可以实现减少路径计算时的运算量。

Description

路径确定方法、装置及设备
技术领域
本发明涉及计算机应用领域,尤其涉及路径确定方法、装置及设备。
背景技术
随着游戏技术的发展,游戏地图做的越来越大,因此对于游戏虚拟角色在游戏地图中的路径寻找则更为复杂。
在游戏中,当游戏虚拟角色想要从一个位置移动到另一个位置时,往往会存在多条路径,而计算路径则需要对组成游戏的各个网格进行计算,由于计算路径需要对游戏中的大量网格进行查找以及计算,会导致较大的运算量,从而造成游戏运行效率较低。
发明内容
本发明实施例提供路径确定方法、装置及设备,可以减少路径计算时的运算量,提高游戏运行性能。
第一方面,提供路径确定方法,包括:
获取网格地图中满足目标条件的第一网格和第二网格,所述目标条件包括:所述第一网格和所述第二网格的面积均小于第一阈值,所述第一网格包括至少三条第一边,所述第二网格包括至少三条第二边,所述至少三条第一边中存在一条第一边和所述至少三条第二边中的一条第二边相邻;
对所述第一网格和所述第二网格进行合并处理,得到合并网格;
根据所述第一网格的特征数据和所述第二网格的特征数据,确定所述合并网格的特征数据;
根据所述合并网格的特征数据,计算目标物体在所述合并网格的导航路径。
结合第一方面,在一种可能的实现方式中,所述方法还包括:获取所述网格地图中的第三网格,所述第三网格的面积大于第二阈值;对所述第三网格进行分裂处理,得到至少两个分裂网格;根据所述第三网格的特征数据,分别确定每个所述分裂网格的特征数据;分别根据每个所述分裂网格的特征数据,计算所述目标物体分别在所述分裂网格的导航路径。
结合第一方面,在一种可能的实现方式中,所述对所述第一网格和所述第二网格进行合并处理,得到合并网格,包括:根据所述第一网格和所述第二网格构建封闭图形,所述封闭图形包括至少三个内角;若所述至少三个内角中的每个内角均小于180度,则将所述封闭图形确定为对所述第一网格和所述第二网格进行合并处理后得到的合并网格。
结合第一方面,在一种可能的实现方式中,所述第三网格包括至少三条第三边,所述对所述第三网格进行分裂处理,得到至少两个分裂网格,包括:
针对所述至少三条第三边中的每条第三边,分别确定所述第三边对应的分裂位置,所述分裂位置不包含所述第三边的端点位置;获取所述至少三条第三边对应的至少三个分裂位置,并根据所述至少三个分裂位置,确定对所述第三网格进行分裂得到的至少两个分裂网格,一条第三边对应一个分裂位置。
结合第一方面,在一种可能的实现方式中,所述针对所述至少三条第三边中的每条第三边,分别确定所述第三边对应的分裂位置,包括:针对所述至少三条第三边中的每条第三边,获取所述第三边对应的分裂比例,并根据所述第三边对应的分裂比例确定所述第三边对应的分裂位置。
结合第一方面,在一种可能的实现方式中,所述合并网格的特征数据包括所述合并网格的至少三个第一顶点的位置信息;所述方法还包括:根据所述至少三个第一顶点的位置信息,计算所述合并网格的第一中心位置信息,并将所述第一中心位置信息与所述合并网格的特征数据之间的对应关系存储在图数据结构中。
结合第一方面,在一种可能的实现方式中,所述分裂网格的特征数据包括所述分裂网格的至少三个第二顶点的位置信息;所述方法还包括:根据所述至少三个第二顶点的位置信息,计算所述分裂网格的第二中心位置信息,并将所述第二中心位置信息与所述分裂网格的特征数据之间的对应关系存储在所述图数据结构中。
结合第一方面,在一种可能的实现方式中,所述图数据结构中包括多个中心位置信息与多个特征数据之间的对应关系,一个中心位置信息对应一个特征数据,所述多个中心位置信息是所述网格地图的多个网格的中心位置信息,所述方法还包括:接收网格查询指令,所述网格查询指令包括待查询的目标网格的至少三个第三顶点的位置信息;根据所述至少三个第三顶点的位置信息,计算所述目标网格的第三中心位置信息;从所述图数据结构中确定与所述第三中心位置信息匹配的中心位置信息,并将所述匹配的中心位置信息对应的特征数据作为所述目标网格的特征数据。
第二方面,提供路径确定装置,包括:
第一网格查找模块,用于获取网格地图中满足目标条件的第一网格和第二网格,所述目标条件包括:所述第一网格和所述第二网格的面积均小于第一阈值,所述第一网格包括至少三条第一边,所述第二网格包括至少三条第二边,所述至少三条第一边中存在一条第一边和所述至少三条第二边中的一条第二边相邻;
网格合并模块,用于对所述第一网格和所述第二网格进行合并处理,得到合并网格;
特征数据确定模块,用于根据所述第一网格的特征数据和所述第二网格的特征数据,确定所述合并网格的特征数据;
路径计算模块,用于根据所述合并网格的特征数据,计算目标物体在所述合并网格的导航路径。
结合第二方面,在一种可能的实现方式中,所述装置还包括:第二网格查找模块,用于获取所述网格地图中的第三网格,所述第三网格的面积大于第二阈值;对所述第三网格进行分裂处理,得到至少两个分裂网格;根据所述第三网格的特征数据,分别确定每个所述分裂网格的特征数据;分别根据每个所述分裂网格的特征数据,计算所述目标物体分别在所述分裂网格的导航路径。
结合第二方面,在一种可能的实现方式中,所述网格合并模块,用于根据所述第一网格和所述第二网格构建封闭图形,所述封闭图形包括至少三个内角;若所述至少三个内角中的每个内角均小于180度,则将所述封闭图形确定为对所述第一网格和所述第二网格进行合并处理后得到的合并网格。
结合第二方面,在一种可能的实现方式中,所述第二网格查找模块,用于针对所述至少三条第三边中的每条第三边,分别确定所述第三边对应的分裂位置,所述分裂位置不包含所述第三边的端点位置;获取所述至少三条第三边对应的至少三个分裂位置,并根据所述至少三个分裂位置,确定对所述第三网格进行分裂得到的至少两个分裂网格,一条第三边对应一个分裂位置。
结合第二方面,在一种可能的实现方式中,所述第二网格查找模块,用于:针对所述至少三条第三边中的每条第三边,获取所述第三边对应的分裂比例,并根据所述第三边对应的分裂比例确定所述第三边对应的分裂位置。
结合第二方面,在一种可能的实现方式中,所述合并网格的特征数据包括所述合并网格的至少三个第一顶点的位置信息;所述装置还包括:第一位置计算模块,用于根据所述至少三个第一顶点的位置信息,计算所述合并网格的第一中心位置信息,并将所述第一中心位置信息与所述合并网格的特征数据之间的对应关系存储在图数据结构中。
结合第二方面,在一种可能的实现方式中,所述分裂网格的特征数据包括所述分裂网格的至少三个第二顶点的位置信息;所述装置还包括:第二位置计算模块,用于根据所述至少三个第二顶点的位置信息,计算所述分裂网格的第二中心位置信息,并将所述第二中心位置信息与所述分裂网格的特征数据之间的对应关系存储在所述图数据结构中。
结合第二方面,在一种可能的实现方式中,所述图数据结构中包括多个中心位置信息与多个特征数据之间的对应关系,一个中心位置信息对应一个特征数据,所述多个中心位置信息是所述网格地图的多个网格的中心位置信息,所述装置还包括:位置匹配模块,用于接收网格查询指令,所述网格查询指令包括待查询的目标网格的至少三个第三顶点的位置信息;根据所述至少三个第三顶点的位置信息,计算所述目标网格的第三中心位置信息;从所述图数据结构中确定与所述第三中心位置信息匹配的中心位置信息,并将所述匹配的中心位置信息对应的特征数据作为所述目标网格的特征数据。
第三方面,提供路径确定设备,包括处理器、存储器、以及输入输出接口,所述处理器、存储器和输入输出接口相互连接,其中,所述输入输出接口用于输入或输出数据,所述存储器用于存储路径确定设备执行上述方法的应用程序代码,所述处理器被配置用于执行上述第一方面的方法。
第四方面,提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
本发明实施例中,获取网格地图中满足目标条件的第一网格和第二网格,所述目标条件包括:所述第一网格和所述第二网格的面积均小于第一阈值,所述第一网格包括至少三条第一边,所述第二网格包括至少三条第二边,所述至少三条第一边中存在一条第一边和所述至少三条第二边中的一条第二边相邻;对所述第一网格和所述第二网格进行合并处理,得到合并网格;根据所述第一网格的特征数据和所述第二网格的特征数据,确定所述合并网格的特征数据;根据所述合并网格的特征数据,计算目标物体在所述合并网格的导航路径。通过将网格地图中面积较小的网格进行合并得到面积较大的网格,可以简化网格地图中面积较小的网格的数量,从而在计算目标物体的导航路径时,由于网格的合并使得网格的数量减小,从而实现减少路径计算时的计算量,提高游戏运行性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种路径确定方法的流程示意图;
图2是本发明实施例提供的一种根据第一网格和第二网格确定封闭图形的示意图;
图3是本发明实施例提供的另一种根据第一网格和第二网格确定封闭图形的示意图;
图4是本发明实施例提供的另一种路径确定方法的流程示意图;
图5是本发明实施例提供的一种对第三网格进行分裂的示意图;
图6是本发明实施例提供的一种路径确定装置的组成结构示意图;
图7是本发明实施例提供的一种路径确定设备的组成结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例提供的一种路径确定方法的流程示意图,如图所示,该方法包括:
S101,获取网格地图中满足目标条件的第一网格和第二网格,所述目标条件包括:所述第一网格和所述第二网格的面积均小于第一阈值,所述第一网格包括至少三条第一边,所述第二网格包括至少三条第二边,所述至少三条第一边中存在一条第一边和所述至少三条第二边中的一条第二边相邻。
这里,网格地图为游戏中目标物体所有可移动的区域组成的地图,网格地图可以包括多个三角形组成的地图,目标物体可以包括游戏中的虚拟角色,即目标虚拟角色;第一阈值可以根据网格地图的面积确定,例如网格地图的面积为S,则第一阈值可以为S/15、S/10、S/8等任意数值;第一网格例如可以为三角形,则第一网格包括三条第一边,第二网格例如可以为三角形,则第二网格包括三条第二边;其中,至少三条第一边中存在一条第一边和至少三条第二边中的一条第二边相邻即第一网格中的一条第一边与第二网格中的一条第二边为公共边。如图2所示,图2是本发明实施例提供的一种根据第一网格和第二网格确定封闭图形的示意图,第一网格为由边a1、a2、c组成的三角形,第二网格为由边b1、b2、c组成的三角形,两条边相邻可以为图2中的第一网格的边c与第二网格的边c相邻,即边c为第一网格与第二网格的公共边。
具体实现中,可以通过获取网格地图中的每个网格的各个顶点坐标,根据网格地图中的每个网格的各个顶点坐标确定出网格地图中的每个网格的面积,从而根据网格地图中的每个网格的面积与第一阈值之间的大小关系获取到网格地图中的第一网格和第二网格。可以理解的是,该网格地图中可以包括多个第一网格和第二网格。
S102,对所述第一网格和所述第二网格进行合并处理,得到合并网格。
这里,具体对所述第一网格和所述第二网格进行合并处理可以包括以下几个步骤:
一、根据所述第一网格和所述第二网格构建封闭图形,所述封闭图形包括至少三个内角。
这里,封闭图形是由n(n为正整数)条线段或弧组成的闭合图形,例如平面图形中的三角形、正方形等;三维空间中的球体、正方体等。本发明实施例涉及的封闭图形为平面图形。
在一种可能的情况下,如图2所示,第一网格和第二网格可以如图2中A所示,根据第一网格和第二网格构建的封闭图形可以如图2中B所示,该封闭图形包括四个内角,分别为图中边a2与边b2组成的内角1、边a2与边a1组成的内角2、边a1与边b1组成的内角3、边b1与边b2组成的内角4。
在另一种可能的情况下,如图3所示,图3是本发明实施例提供的另一种根据第一网格和第二网格确定封闭图形的示意图,第一网格和第二网格可以如图3中A所示,根据第一网格和第二网格构建的封闭图形可以如图3中B所示,该封闭图形包括四个内角,分别为图中的内角1、内角2、内角3、内角4。
二、若所述至少三个内角中的每个内角均小于180度,则将所述封闭图形确定为对所述第一网格和所述第二网格进行合并处理后得到的合并网格。
这里,如图2所示,可知图2中B所示的封闭图形的每个内角均小于180度。则将该封闭图形确定为对第一网格和第二网格进行合并处理后得到的合并网格,即合并网格的形状为图2中B所示的封闭图形的形状。
在一种可能的情况下,若封闭图形包括的至少三个内角中有一个或者一个以上内角大于180度,则不对第一网格和第二网格进行合并处理。如图3所示,可知图3中B所示的封闭图形的内角2大于180度,则不对第一网格和第二网格进行合并处理。
S103,根据所述第一网格的特征数据和所述第二网格的特征数据,确定所述合并网格的特征数据。
这里,第一网格的特征数据包括第一网格的至少三个顶点的顶点信息,第二网格的特征数据包括第二网格的至少三个顶点的顶点信息,合并网格的特征数据包括合并网格的至少三个第一顶点的位置信息。
例如,图2中第一网格的三个顶点的顶点信息分别为(x1,y1)、(x2,y2)、(x3,y3),第二网格的三个顶点的顶点信息分别为(x1,y1)、(x3,y3)、(x4,y4),则得到的合并网格的四个第一顶点的位置信息分别为(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)。
可选地,第一网格的特征数据还可以包括第一网格的面积、第一网格的至少三个内角的内角值、第一网格的中心坐标以及第一网格的邻居网格,等等;第一网格的邻居网格即与第一网格具有公共边(即相邻边,相邻边可以如图2中B所示)的网格,例如第二网格;第二网格的特征数据还可以包括第二网格的面积、第二网格的至少三个内角的内角值、第二网格的中心坐标以及第二网格的邻居网格,等等;第二网格的邻居网格即与第二网格具有公共边(即相邻边)的网格,例如第一网格;合并网格的特征数据还可以包括合并网格的面积、合并网格的至少三个内角的内角值、合并网格的中心坐标以及合并网格的邻居网格,等等;合并网格的邻居网格即与合并网格具有公共边(即相邻边)的网格。
具体地,第一网格的中心坐标可以通过第一网格的至少三个顶点计算得到,例如第一网格的中心坐标可以为第一网格的至少三个顶点坐标的平均值;第二网格的中心坐标可以通过第二网格的至少三个顶点计算得到,例如第二网格的中心坐标可以为第二网格的至少三个顶点坐标的平均值,即第一网格的中心坐标的横坐标为第一网格的至少三个顶点横坐标的平均值,第一网格的中心坐标的纵坐标为第一网格的至少三个顶点纵坐标的平均值。
合并网格的内角值可以通过第一网格的内角值与第二网格的内角值之和得到,合并网格的面积可以通过第一网格的面积与第二网格的面积之和得到,合并网格的邻居网格可以通过第一网格的邻居网格与第二网格的邻居网格得到,即合并网格的邻居网格包括第一网格的邻居网格与第二网格的邻居网格。可以直接通过对第一网格与第二网格的面积之和得到合并网格的面积,无需再通过合并网格的各条边长重新计算合并网格的面积;由于确定了合并网格的邻居网格,在后续计算导航路径等,可以便于确定目标物体所在网格的邻居网格,以及目标物体要移动到的终点网格的邻居网格,从而提升路径计算效率。
S104,根据所述合并网格的特征数据,计算目标物体在所述合并网格的导航路径。
这里,目标物体可以包括游戏中的虚拟角色,即目标虚拟角色,目标虚拟角色可以在游戏中的网格地图中的所有区域移动,以完成游戏任务,例如打怪物、攻击城堡、杀敌、到达终点,等等。导航路径可以包括目标虚拟角色完成任意任务的路径。例如目标虚拟角色当前在网格地图中的点P位置,怪物的位置在网格地图中的点Q位置,目标虚拟角色要从点P位置移动到点Q位置进行打怪,其中,从点P位置移动到点Q位置可能包括多种路径,例如目标虚拟角色可以走直线、也可以走“Z”形路线、也可以走“S”形路线等等。可以对每条可行路径进行计算,从而确定出目标虚拟角色的最优导航路径,即根据目标虚拟角色所在合并网格以及该合并网格的邻居网格,确定出目标虚拟角色的最优导航路径。
具体实现中,可以通过现有的A*(A-Star)算法计算路径,A*算法是一种静态路网中求解最短路径最有效的直接搜索方法,也可以通过拐角点计算方法计算路径,此处不做过多说明。
可选地,在计算导航路径之前,还可以预先根据所述至少三个第一顶点的位置信息,计算所述合并网格的第一中心位置信息,并将所述第一中心位置信息与所述合并网格的特征数据之间的对应关系存储在图数据结构中。
这里,图数据结构中包括多个中心位置信息与多个特征数据之间的对应关系,一个中心位置信息对应一个特征数据,多个中心位置信息是网格地图的多个网格的中心位置信息,多个中心位置信息包括第一中心位置信息。
具体实现中,合并网格的第一中心位置信息可以通过合并网格的至少三个第一顶点的位置信息计算得到,例如合并网格的第一中心位置信息可以为合并网格的至少三个第一顶点的位置信息的平均值,即为合并网格的至少三个第一顶点坐标的平均值。在计算得到合并网格的第一中心位置信息后,将第一中心位置信息与合并网格的特征数据之间的对应关系存储在图数据结构中。可选地,可以通过现有技术中的四叉树的方法将合并网格以及合并网格的特征数据保存至图数据结构中,在查找对应的合并网格时,由于存放合并网格以及合并网格的特征数据时按照各个网格所在的象限进行分类存放,在查找对应的网格时,可以提升查找效率。
可选地,在接收到网格查询指令时,根据所述至少三个第三顶点的位置信息,计算所述目标网格的第三中心位置信息;从所述图数据结构中确定与所述第三中心位置信息匹配的中心位置信息,并将所述匹配的中心位置信息对应的特征数据作为所述目标网格的特征数据。其中,网格查询指令包括待查询的目标网格的至少三个第三顶点的位置信息。
具体实现中,在计算目标物体在合并网格的导航路径时,目标物体所在的网格即待查询的目标网格,目标物体所要移动到的终点网格(例如怪物所在的网格)也为待查询的目标网格,即计算目标物体在合并网格的导航路径即计算两个待查询网格之间的导航路径。
具体地,可以首先根据目标物体所在的网格的至少三个第三顶点的位置信息计算目标物体所在的网格的第三中心位置信息;在计算出目标物体所在的网格的第三中心位置信息后,根据该第三中心位置信息从图数据结构中确定与该第三中心位置信息匹配的中心位置信息,并将该匹配的中心位置信息对应的特征数据作为目标网格的特征数据,即将匹配出的图数据结构中的中心位置信息对应的特征数据作为目标物体所在的网格的特征数据,由此可确定出目标物体所在的网格的特征数据;也可以通过该方法计算出目标物体所要移动到的终点网格的特征数据,并对目标物体所在的网格的特征数据与目标物体所要移动到的终点网格的特征数据进行计算,得到目标物体在网格的导航路径。这里,终点网格即目标物体所要移动的终点所在网格,例如目标物体需要进行打怪,则终点网格为目标物体要打的怪物所在的网格。通过将第一中心位置信息与合并网格的特征数据之间的对应关系存储在图数据结构中,可以在图数据结构中查找合并网格时,提高查找效率。
本发明实施例中,获取网格地图中满足目标条件的第一网格和第二网格,所述目标条件包括:所述第一网格和所述第二网格的面积均小于第一阈值,所述第一网格包括至少三条第一边,所述第二网格包括至少三条第二边,所述至少三条第一边中存在一条第一边和所述至少三条第二边中的一条第二边相邻;对所述第一网格和所述第二网格进行合并处理,得到合并网格;根据所述第一网格的特征数据和所述第二网格的特征数据,确定所述合并网格的特征数据;根据所述合并网格的特征数据,计算目标物体在所述合并网格的导航路径。通过将网格地图中面积较小的网格进行合并得到面积较大的网格,可以简化网格地图中面积较小的网格的数量,从而在计算目标物体的导航路径时,由于网格的合并使得网格的数量减小,从而实现减少路径计算时的计算量,提高游戏运行性能;由于将网格地图中的网格与网格的特征数据之间的对应关系存储在图数据结构中,在获取网格的特征数据时,可以快速确定与该网格的特征数据对应的网格,提高查找效率,由于将网格的特征数据预先存储在图数据中,在对合并网格进行计算时,可以直接查询预先存储的网格对应的网格的特征数据,无需再重新计算,可以减少计算量。
在一种可能的实现方式中,还可以对网格地图中较大的网格进行分裂,使得在计算导航路径时计算更准确;具体步骤如图4所示,图4是本发明实施例提供的另一种路径确定方法的流程示意图,如图所示,该方法包括:
S201,获取所述网格地图中的第三网格,所述第三网格的面积大于第二阈值。
这里,第三网格包括至少三条第三边,第三网格的形状例如可以为三角形,则三角形的三条边均为第三边;第二阈值可以根据网格地图的面积确定,例如网格地图的面积为S,则第二阈值可以为S/15、S/10、S/8、S/5等任意数值;第二阈值可以等于第一阈值,此处不对第二阈值做限定。可以理解的是,该网格地图中可以包括多个第三网格。
具体实现中,可以通过获取网格地图中的每个网格的各个顶点坐标,根据网格地图中的每个网格的各个顶点坐标确定出网格地图中的每个网格的面积,从而根据网格地图中的每个网格的面积与第二阈值的大小关系获取到网格地图中的第三网格。
S202,对所述第三网格进行分裂处理,得到至少两个分裂网格。
这里,具体对所述第三网格进行分裂处理可以包括以下几个步骤:
一、针对所述至少三条第三边中的每条第三边,分别确定所述第三边对应的分裂位置,所述分裂位置不包含所述第三边的端点位置。
这里,每条第三边上的分裂位置的数量可以大于或者等于1,例如每条边上的分裂位置可以为1、2、3,等等。例如第三网格为三角形,则该三角形的三条第三边中每条第三边包含2个端点位置,即三角形的顶点所在的位置。
具体地,针对所述至少三条第三边中的每条第三边,获取所述第三边对应的分裂比例,并根据所述第三边对应的分裂比例确定所述第三边对应的分裂位置。
这里,分裂比例可以为1:1、1:2、1:3、3:1、3:2、2:1等任意比例,例如分裂比例为1:1时,则表示第三边对应的分裂位置为该第三边的中点位置;针对至少三条第三边中的每条第三边,都可以确定每条第三边对应的分裂比例,从而根据每条第三边上对应的分裂比例确定该第三边对应的分裂位置。
二、获取所述至少三条第三边对应的至少三个分裂位置,并根据所述至少三个分裂位置,确定对所述第三网格进行分裂得到的至少两个分裂网格,一条第三边对应一个分裂位置。
在一种可能的实现方式中,如图5所示,图5是本发明实施例提供的一种对第三网格进行分裂的示意图,第三网格可以为图5中A所示的网格,其中第三网格为具有三条第三边的网格,获取到在第三网格包含的三条第三边中每条第三边对应的分裂比例都为1:1,即该第三网格包含的三条第三边中每条第三边对应的分裂位置都为第三边的中点位置,且每条第三边上确定的分裂位置数量为1,则根据三个分裂位置确定对第三网格进行分裂得到的四个分裂网格可以如图5中B所示,网格1、网格2、网格3与网格4都为分裂网格,四个分裂网格的面积相等。可选地,每条第三边上的分裂位置也可以为除该第三边上的中点位置和第三边的端点位置以外的位置,则分裂得到的至少两个分裂网格的面积可以不相等。
可选地,还可以针对第三网格包括的至少三条第三边中的任意一条第三边,确定所述第三边对应的分裂位置;获取所述第三边对应的至少一个分裂位置,并根据所述至少一个分裂位置,确定对所述第三网格进行分裂得到的至少两个分裂网格。其中,所述分裂位置不包含所述第三边的端点位置。例如第三网格为三角形,第三网格的三条第三边分别为边de、边ef、边fd,即三角形的三个顶点分别为d、e、f,则分裂位置可以为边de、边ef或者边fd中的任意一条边上的分裂位置,例如分裂位置数量为一个且分裂位置为边de对应的分裂位置g,则根据边de对应的分裂位置g对第三网格进行分裂得到的两个分裂网格分别为三角形dfg与三角形efg。
S203,根据所述第三网格的特征数据,分别确定每个所述分裂网格的特征数据。
这里,第三网格的特征数据包括第三网格的至少三个顶点的顶点信息,分裂网格的特征数据包括分裂网格的至少三个第二顶点的位置信息。
可选地,第三网格的特征数据还可以包括第三网格的面积、第三网格的至少三个内角的内角值、第三网格的中心坐标以及第三网格的邻居网格,等等;第三网格的邻居网格即与第三网格具有公共边(即相邻边,如图2中B所示)的网格;分裂网格的特征数据还可以包括分裂网格的面积、分裂网格的至少三个内角的内角值、分裂网格的中心坐标以及分裂网格的邻居网格,等等。分裂网格的邻居网格即与分裂网格具有公共边的网格,如图5所示,在第三网格分裂后,得到的分裂网格1的邻居网格包括分裂网格2以及第三网格的邻居网格;分裂网格2的邻居网格包括分裂网格1、分裂网格3、分裂网格4以及第三网格的邻居网格;分裂网格3的邻居网格包括分裂网格2以及第三网格的邻居网格;分裂网格4的邻居网格包括分裂网格2以及第三网格的邻居网格。
具体地,第三网格的中心坐标可以通过第三网格的至少三个顶点计算得到,例如第三网格的中心坐标可以为第三网格的至少三个顶点坐标的平均值;分裂网格的中心坐标可以通过分裂网格的至少三个顶点计算得到,例如分裂网格的中心坐标可以为分裂网格的至少三个顶点坐标的平均值,即第三网格的中心坐标的横坐标为第三网格的至少三个顶点横坐标的平均值,第三网格的中心坐标的纵坐标为第三网格的至少三个顶点纵坐标的平均值;分裂网格的内角值可以通过第三网格的内角值得到,分裂网格的面积可以通过第三网格的面积得到,分裂网格的邻居网格可以通过第三网格的邻居网格得到。由于确定了分裂网格的邻居网格,在后续计算导航路径等,可以便于确定目标物体所在网格的邻居网格,以及目标物体要移动到的终点网格的邻居网格,从而提升路径计算效率。
S204,分别根据每个所述分裂网格的特征数据,计算所述目标物体分别在所述分裂网格的导航路径。
这里,针对每个分裂网格,可以根据每个分裂网格的特征数据,计算目标物体在该分裂网格的导航路径,即一个分裂网格对应一条导航路径。
可选地,在计算导航路径之前,可以预先根据所述至少三个第二顶点的位置信息,计算所述分裂网格的第二中心位置信息,并将所述第二中心位置信息与所述分裂网格的特征数据之间的对应关系存储在所述图数据结构中。
这里,图数据结构中包括多个中心位置信息与多个特征数据之间的对应关系,一个中心位置信息对应一个特征数据,多个中心位置信息是网格地图的多个网格的中心位置信息,多个中心位置信息包括第二中心位置信息。
具体实现中,分裂网格的第二中心位置信息可以通过分裂网格的至少三个第二顶点的位置信息计算得到,例如分裂网格的第二中心位置信息可以为分裂网格的至少三个第二顶点的位置信息的平均值,即为分裂网格的至少三个第二顶点坐标的平均值。在计算得到分裂网格的第二中心位置信息后,将第二中心位置信息与分裂网格的特征数据之间的对应关系存储在图数据结构中。可选地,可以通过现有技术中的四叉树的方法将分裂网格以及分裂网格的特征数据保存至图数据结构中,在查找对应的分裂网格时,由于存放分裂网格以及分裂网格的特征数据时按照各个网格所在的象限进行分类存放,在查找对应的网格时,可以提升查找效率。
可选地,在接收到网格查询指令时,根据所述至少三个第三顶点的位置信息,计算所述目标网格的第三中心位置信息;从所述图数据结构中确定与所述第三中心位置信息匹配的中心位置信息,并将所述匹配的中心位置信息对应的特征数据作为所述目标网格的特征数据。其中,网格查询指令包括待查询的目标网格的至少三个第三顶点的位置信息。
具体实现中,在计算目标物体在分裂网格的导航路径时,目标物体所在的网格即待查询的目标网格,目标物体所要移动到的终点网格(例如怪物所在的网格)也为待查询的目标网格,即计算目标物体在分裂网格的导航路径即计算两个待查询网格之间的导航路径。
具体地,可以首先根据目标物体所在的网格的至少三个第三顶点的位置信息计算目标物体所在的网格的第三中心位置信息;在计算出目标物体所在的网格的第三中心位置信息后,根据该第三中心位置信息从图数据结构中确定与该第三中心位置信息匹配的中心位置信息,并将该匹配的中心位置信息对应的特征数据作为目标网格的特征数据,即将匹配出的图数据结构中的中心位置信息对应的特征数据作为目标物体所在的网格的特征数据,由此可确定出目标物体所在的网格的特征数据;也可以通过该方法计算出目标物体所要移动到的终点网格的特征数据,并对目标物体所在的网格的特征数据与目标物体所要移动到的终点网格的特征数据进行计算,得到目标物体在网格的导航路径。这里,终点网格即目标物体所要移动的终点所在网格,例如目标物体需要进行打怪,则终点网格为目标物体要打的怪物所在的网格。通过将第二中心位置信息与分裂网格的特征数据之间的对应关系存储在图数据结构中,可以在图数据结构中查找分裂网格时,提高查找效率。
本发明实施例中,由于将网格的特征数据预先存储在图数据结构中,在对分裂网格进行计算时,可以直接查询预先存储的网格对应的网格的特征数据,无需再重新计算,可以减少计算量;由于对网格地图中面积较大的网格进行分裂,在计算导航路径时,避免了由于网格较大导致的绕路,从而使得计算结果更准确。
上面介绍了本发明实施例的方法,下面介绍本发明实施例的装置。
参见图6,图6是本发明实施例提供的一种路径确定装置的组成结构示意图,该装置60包括:
第一网格查找模块601,用于获取网格地图中满足目标条件的第一网格和第二网格,所述目标条件包括:所述第一网格和所述第二网格的面积均小于第一阈值,所述第一网格包括至少三条第一边,所述第二网格包括至少三条第二边,所述至少三条第一边中存在一条第一边和所述至少三条第二边中的一条第二边相邻;
这里,网格地图为游戏中目标物体所有可移动的区域组成的地图,网格地图可以包括多个三角形组成的地图,目标物体可以包括游戏中的虚拟角色,即目标虚拟角色;第一阈值可以根据网格地图的面积确定,例如网格地图的面积为S,则第一阈值可以为S/15、S/10、S/8等任意数值;第一网格例如可以为三角形,则第一网格包括三条第一边,第二网格例如可以为三角形,则第二网格包括三条第二边;其中,至少三条第一边中存在一条第一边和至少三条第二边中的一条第二边相邻即第一网格中的一条第一边与第二网格中的一条第二边为公共边。如图2所示,图2是本发明实施例提供的一种根据第一网格和第二网格确定封闭图形的示意图,第一网格为由边a1、a2、c组成的三角形,第二网格为由边b1、b2、c组成的三角形,两条边相邻可以为图2中的第一网格的边c与第二网格的边c相邻,即边c为第一网格与第二网格的公共边。
具体实现中,第一网格查找模块601可以通过获取网格地图中的每个网格的各个顶点坐标,根据网格地图中的每个网格的各个顶点坐标确定出网格地图中的每个网格的面积,从而根据网格地图中的每个网格的面积与第一阈值之间的大小关系获取到网格地图中的第一网格和第二网格。可以理解的是,该网格地图中可以包括多个第一网格和第二网格。
网格合并模块602,用于对所述第一网格和所述第二网格进行合并处理,得到合并网格;
特征数据确定模块603,用于根据所述第一网格的特征数据和所述第二网格的特征数据,确定所述合并网格的特征数据;
这里,第一网格的特征数据包括第一网格的至少三个顶点的顶点信息,第二网格的特征数据包括第二网格的至少三个顶点的顶点信息,合并网格的特征数据包括合并网格的至少三个第一顶点的位置信息。
例如,图2中第一网格的三个顶点的顶点信息分别为(x1,y1)、(x2,y2)、(x3,y3),第二网格的三个顶点的顶点信息分别为(x1,y1)、(x3,y3)、(x4,y4),则得到的合并网格的四个第一顶点的位置信息分别为(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)。
可选地,第一网格的特征数据还可以包括第一网格的面积、第一网格的至少三个内角的内角值、第一网格的中心坐标以及第一网格的邻居网格,等等;第一网格的邻居网格即与第一网格具有公共边(即相邻边,相邻边可以如图2中B所示)的网格,例如第二网格;第二网格的特征数据还可以包括第二网格的面积、第二网格的至少三个内角的内角值、第二网格的中心坐标以及第二网格的邻居网格,等等;第二网格的邻居网格即与第二网格具有公共边(即相邻边)的网格,例如第一网格;合并网格的特征数据还可以包括合并网格的面积、合并网格的至少三个内角的内角值、合并网格的中心坐标以及合并网格的邻居网格,等等;合并网格的邻居网格即与合并网格具有公共边(即相邻边)的网格。
具体地,第一网格的中心坐标可以通过第一网格的至少三个顶点计算得到,例如第一网格的中心坐标可以为第一网格的至少三个顶点坐标的平均值;第二网格的中心坐标可以通过第二网格的至少三个顶点计算得到,例如第二网格的中心坐标可以为第二网格的至少三个顶点坐标的平均值,即第一网格的中心坐标的横坐标为第一网格的至少三个顶点横坐标的平均值,第一网格的中心坐标的纵坐标为第一网格的至少三个顶点纵坐标的平均值。
合并网格的内角值可以通过第一网格的内角值与第二网格的内角值之和得到,合并网格的面积可以通过第一网格的面积与第二网格的面积之和得到,合并网格的邻居网格可以通过第一网格的邻居网格与第二网格的邻居网格得到,即合并网格的邻居网格包括第一网格的邻居网格与第二网格的邻居网格。可以直接通过对第一网格与第二网格的面积之和得到合并网格的面积,无需再通过合并网格的各条边长重新计算合并网格的面积;由于确定了合并网格的邻居网格,在后续计算导航路径等,可以便于确定目标物体所在网格的邻居网格,以及目标物体要移动到的终点网格的邻居网格,从而提升路径计算效率。
路径计算模块604,用于根据所述合并网格的特征数据,计算目标物体在所述合并网格的导航路径。
这里,目标物体可以包括游戏中的虚拟角色,即目标虚拟角色,目标虚拟角色可以在网格地图中的所有区域移动,以完成游戏任务,例如打怪物、攻击城堡、杀敌、到达终点,等等。导航路径可以包括目标虚拟角色完成任意任务的路径。例如目标虚拟角色当前在网格地图中的点P位置,怪物的位置在网格地图中的点Q位置,目标虚拟角色要从点P位置移动到点Q位置进行打怪,其中,从点P位置移动到点Q位置可能包括多种路径,例如目标虚拟角色可以走直线、也可以走“Z”形路线、也可以走“S”形路线等等。可以对每条可行路径进行计算,从而确定出目标虚拟角色的最优导航路径,即根据目标虚拟角色所在合并网格以及该合并网格的邻居网格,确定出目标虚拟角色的最优导航路径。
具体实现中,路径计算模块604可以通过现有的A*(A-Star)算法计算路径,A*算法是一种静态路网中求解最短路径最有效的直接搜索方法,也可以通过拐角点计算方法计算路径,此处不做过多说明。
在一种可能的设计中,所述装置60还包括:
第二网格查找模块605,用于获取所述网格地图中的第三网格,所述第三网格的面积大于第二阈值;
这里,第三网格包括至少三条第三边,第三网格的形状例如可以为三角形,则三角形的三条边均为第三边;第二阈值可以根据网格地图的面积确定,例如网格地图的面积为S,则第二阈值可以为S/15、S/10、S/8、S/5等任意数值;第二阈值可以等于第一阈值,此处不对第二阈值做限定。可以理解的是,该网格地图中可以包括多个第三网格。
具体实现中,第二网格查找模块605可以通过获取网格地图中的每个网格的各个顶点坐标,根据网格地图中的每个网格的各个顶点坐标确定出网格地图中的每个网格的面积,从而根据网格地图中的每个网格的面积与第二阈值的大小关系获取到网格地图中的第三网格。
所述第二网格查找模块605,还用于对所述第三网格进行分裂处理,得到至少两个分裂网格;
所述第二网格查找模块605,还用于根据所述第三网格的特征数据,分别确定每个所述分裂网格的特征数据;
这里,第三网格的特征数据包括第三网格的至少三个顶点的顶点信息,分裂网格的特征数据包括分裂网格的至少三个第二顶点的位置信息。
可选地,第三网格的特征数据还可以包括第三网格的面积、第三网格的至少三个内角的内角值、第三网格的中心坐标以及第三网格的邻居网格,等等;第三网格的邻居网格即与第三网格具有公共边(即相邻边,如图2中B所示)的网格;分裂网格的特征数据还可以包括分裂网格的面积、分裂网格的至少三个内角的内角值、分裂网格的中心坐标以及分裂网格的邻居网格,等等。分裂网格的邻居网格即与分裂网格具有公共边的网格,如图5所示,在第三网格分裂后,得到的分裂网格1的邻居网格包括分裂网格2以及第三网格的邻居网格;分裂网格2的邻居网格包括分裂网格1、分裂网格3、分裂网格4以及第三网格的邻居网格;分裂网格3的邻居网格包括分裂网格2以及第三网格的邻居网格;分裂网格4的邻居网格包括分裂网格2以及第三网格的邻居网格。
具体地,第三网格的中心坐标可以通过第三网格的至少三个顶点计算得到,例如第三网格的中心坐标可以为第三网格的至少三个顶点坐标的平均值;分裂网格的中心坐标可以通过分裂网格的至少三个顶点计算得到,例如分裂网格的中心坐标可以为分裂网格的至少三个顶点坐标的平均值,即第三网格的中心坐标的横坐标为第三网格的至少三个顶点横坐标的平均值,第三网格的中心坐标的纵坐标为第三网格的至少三个顶点纵坐标的平均值;分裂网格的内角值可以通过第三网格的内角值得到,分裂网格的面积可以通过第三网格的面积得到,分裂网格的邻居网格可以通过第三网格的邻居网格得到。由于确定了分裂网格的邻居网格,在后续计算导航路径等,可以便于确定目标物体所在网格的邻居网格,以及目标物体要移动到的终点网格的邻居网格,从而提升路径计算效率。
所述第二网格查找模块605,还用于分别根据每个所述分裂网格的特征数据,计算所述目标物体分别在所述分裂网格的导航路径。
这里,针对每个分裂网格,第二网格查找模块605可以根据每个分裂网格的特征数据,计算目标物体在该分裂网格的导航路径,即一个分裂网格对应一条导航路径。
具体实现中,在第二网格查找模块605计算目标物体在分裂网格的导航路径时,目标物体所在的网格即待查询的目标网格,目标物体所要移动到的终点网格(例如怪物所在的网格)也为待查询的目标网格,即计算目标物体在分裂网格的导航路径即计算两个待查询网格之间的导航路径。
具体地,第二网格查找模块605可以首先根据目标物体所在的网格的至少三个第三顶点的位置信息计算目标虚拟角色所在的网格的第三中心位置信息;在计算出目标物体所在的网格的第三中心位置信息后,根据该第三中心位置信息从图数据结构中确定与该第三中心位置信息匹配的中心位置信息,并将该匹配的中心位置信息对应的特征数据作为目标网格的特征数据,即将匹配出的图数据结构中的中心位置信息对应的特征数据作为目标物体所在的网格的特征数据,由此可确定出目标物体所在的网格的特征数据;也可以通过该方法计算出目标物体所要移动到的终点网格的特征数据,并对目标物体所在的网格的特征数据与目标物体所要移动到的终点网格的特征数据进行计算,得到目标物体在网格的导航路径。这里,终点网格即目标物体所要移动的终点所在网格,例如目标物体需要进行打怪,则终点网格为目标物体要打的怪物所在的网格。通过将第二中心位置信息与分裂网格的特征数据之间的对应关系存储在图数据结构中,可以在图数据结构中查找分裂网格时,提高查找效率。
在一种可能的设计中,所述网格合并模块602,用于根据所述第一网格和所述第二网格构建封闭图形,所述封闭图形包括至少三个内角;
这里,封闭图形是由n(n为正整数)条线段或弧组成的闭合图形,例如平面图形中的三角形、正方形等;三维空间中的球体、正方体等。本发明实施例涉及的封闭图形为平面图形。
在一种可能的情况下,如图2所示,第一网格和第二网格可以如图2中A所示,网格合并模块602根据第一网格和第二网格构建的封闭图形可以如图2中B所示,该封闭图形包括四个内角,分别为图中边a2与边b2组成的内角1、边a2与边a1组成的内角2、边a1与边b1组成的内角3、边b1与边b2组成的内角4。
在另一种可能的情况下,如图3所示,图3是本发明实施例提供的另一种根据第一网格和第二网格确定封闭图形的示意图,第一网格和第二网格可以如图3中A所示,根据第一网格和第二网格构建的封闭图形可以如图3中B所示,该封闭图形包括四个内角,分别为图中的内角1、内角2、内角3、内角4。
所述网格合并模块602,还用于若所述至少三个内角中的每个内角均小于180度,则将所述封闭图形确定为对所述第一网格和所述第二网格进行合并处理后得到的合并网格。这里,如图2所示,可知图2中B的封闭图形的每个内角均小于180度。则将该封闭图形确定为对第一网格和第二网格进行合并处理后得到的合并网格,即合并网格的形状为图2中B的封闭图形的形状。
在一种可能的情况下,若封闭图形包括的至少三个内角中有一个或者一个以上内角大于180度,则网格合并模块602不对第一网格和第二网格进行合并处理。如图3所示,可知图3中B的封闭图形的内角2大于180度,则不对第一网格和第二网格进行合并处理。
在一种可能的设计中,所述第二网格查找模块605,用于针对所述至少三条第三边中的每条第三边,分别确定所述第三边对应的分裂位置,所述分裂位置不包含所述第三边的端点位置;
这里,每条第三边上的分裂位置的数量可以大于或者等于1,例如每条边上的分裂位置可以为1、2、3,等等。例如第三网格为三角形,则该三角形的三条第三边中每条第三边包含2个端点位置,即三角形的顶点所在的位置。
所述第二网格查找模块605,还用于获取所述至少三条第三边对应的至少三个分裂位置,并根据所述至少三个分裂位置,确定对所述第三网格进行分裂得到的至少两个分裂网格,一条第三边对应一个分裂位置。
在一种可能的实现方式中,如图5所示,图5是本发明实施例提供的一种对第三网格进行分裂的示意图,第三网格可以为图5中A所示的网格,其中第三网格为具有三条第三边的网格,获取到在第三网格包含的三条第三边中每条第三边对应的分裂比例都为1:1,即该第三网格包含的三条第三边中每条第三边对应的分裂位置都为第三边的中点位置,且每条第三边上确定的分裂位置数量为1,则根据三个分裂位置确定对第三网格进行分裂得到的四个分裂网格可以如图5中B所示,网格1、网格2、网格3与网格4都为分裂网格,四个分裂网格的面积相等。可选地,每条第三边上的分裂位置也可以为除该第三边上的中点位置和第三边的端点位置以外的位置,则分裂得到的至少两个分裂网格的面积可以不相等。
可选地,第二网格查找模块605还可以针对第三网格包括的至少三条第三边中的任意一条第三边,确定所述第三边对应的分裂位置;获取所述第三边对应的至少一个分裂位置,并根据所述至少一个分裂位置,确定对所述第三网格进行分裂得到的至少两个分裂网格。其中,所述分裂位置不包含所述第三边的端点位置。例如第三网格为三角形,第三网格的三条第三边分别为边d e、边e f、边f d,即三角形的三个顶点分别为d、e、f,则分裂位置可以为边d e、边e f或者边f d中的任意一条边上的分裂位置,例如分裂位置数量为一个且分裂位置为边de对应的分裂位置g,则根据边de对应的分裂位置g对第三网格进行分裂得到的两个分裂网格分别为三角形d f g与三角形e f g。
在一种可能的设计中,所述网格合并模块602,用于针对所述至少三条第三边中的每条第三边,获取所述第三边对应的分裂比例,并根据所述第三边对应的分裂比例确定所述第三边对应的分裂位置。
这里,分裂比例可以为1:1、1:2、1:3、3:1、3:2、2:1等任意比例,例如分裂比例为1:1时,则表示第三边对应的分裂位置为该第三边的中点位置;针对至少三条第三边中的每条第三边,都可以确定每条第三边对应的分裂比例,从而根据每条第三边上对应的分裂比例确定该第三边对应的分裂位置。
在一种可能的设计中,所述合并网格的特征数据包括所述合并网格的至少三个第一顶点的位置信息;所述装置60还包括:
第一位置计算模块606,用于根据所述至少三个第一顶点的位置信息,计算所述合并网格的第一中心位置信息,并将所述第一中心位置信息与所述合并网格的特征数据之间的对应关系存储在图数据结构中。
这里,图数据结构中包括多个中心位置信息与多个特征数据之间的对应关系,一个中心位置信息对应一个特征数据,多个中心位置信息是网格地图的多个网格的中心位置信息,多个中心位置信息包括第一中心位置信息。
具体实现中,合并网格的第一中心位置信息可以通过合并网格的至少三个第一顶点的位置信息计算得到,例如合并网格的第一中心位置信息可以为合并网格的至少三个第一顶点的位置信息的平均值,即为合并网格的至少三个第一顶点坐标的平均值。在位置计算模块606计算得到合并网格的第一中心位置信息后,将第一中心位置信息与合并网格的特征数据之间的对应关系存储在图数据结构中。可选地,位置计算模块606可以通过现有技术中的四叉树的方法将合并网格以及合并网格的特征数据保存至图数据结构中,在查找对应的合并网格时,由于存放合并网格以及合并网格的特征数据时按照各个网格所在的象限进行分类存放,在查找对应的网格时,可以提升查找效率。
在一种可能的设计中,所述合并网格的特征数据包括所述合并网格的至少三个第一顶点的位置信息;所述装置60还包括:
第二位置计算模块607,用于根据所述至少三个第二顶点的位置信息,计算所述分裂网格的第二中心位置信息,并将所述第二中心位置信息与所述分裂网格的特征数据之间的对应关系存储在所述图数据结构中。
这里,图数据结构中包括多个中心位置信息与多个特征数据之间的对应关系,一个中心位置信息对应一个特征数据,多个中心位置信息是网格地图的多个网格的中心位置信息,多个中心位置信息包括第一中心位置信息。
具体实现中,分裂网格的第二中心位置信息可以通过分裂网格的至少三个第二顶点的位置信息计算得到,例如分裂网格的第二中心位置信息可以为分裂网格的至少三个第二顶点的位置信息的平均值,即为分裂网格的至少三个第二顶点坐标的平均值。在计算得到分裂网格的第二中心位置信息后,将第二中心位置信息与分裂网格的特征数据之间的对应关系存储在图数据结构中。可选地,可以通过现有技术中的四叉树的方法将分裂网格以及分裂网格的特征数据保存至图数据结构中,在查找对应的分裂网格时,由于存放分裂网格以及分裂网格的特征数据时按照各个网格所在的象限进行分类存放,在查找对应的网格时,可以提升查找效率。
在一种可能的设计中,所述图数据结构中包括多个中心位置信息与多个特征数据之间的对应关系,一个中心位置信息对应一个特征数据,所述多个中心位置信息是所述网格地图的多个网格的中心位置信息,所述多个中心位置信息包括所述第一中心位置信息和所述第二中心位置信息;所述装置60还包括:
位置匹配模块608,用于接收网格查询指令,所述网格查询指令包括待查询的目标网格的至少三个第三顶点的位置信息;
所述位置匹配模块608,还用于根据所述至少三个第三顶点的位置信息,计算所述目标网格的第三中心位置信息;
所述位置匹配模块608,还用于从所述图数据结构中确定与所述第三中心位置信息匹配的中心位置信息,并将所述匹配的中心位置信息对应的特征数据作为所述目标网格的特征数据。
具体实现中,在位置匹配模块608计算目标物体在合并网格的导航路径时,目标虚拟角色所在的网格即待查询的目标网格,目标虚拟角色所要移动到的终点网格(例如怪物所在的网格)也为待查询的目标网格,即计算目标物体在合并网格的导航路径即计算两个待查询网格之间的导航路径。
具体地,位置匹配模块608可以首先根据目标物体所在的网格的至少三个第三顶点的位置信息计算目标虚拟角色所在的网格的第三中心位置信息;在计算出目标物体所在的网格的第三中心位置信息后,根据该第三中心位置信息从图数据结构中确定与该第三中心位置信息匹配的中心位置信息,并将该匹配的中心位置信息对应的特征数据作为目标网格的特征数据,即将匹配出的图数据结构中的中心位置信息对应的特征数据作为目标物体所在的网格的特征数据,由此可确定出目标物体所在的网格的特征数据;也可以通过该方法计算出目标物体所要移动到的终点网格的特征数据,并对目标物体所在的网格的特征数据与目标物体所要移动到的终点网格的特征数据进行计算,得到当前目标物体在网格的导航路径。这里,终点网格即目标物体所要移动的终点所在网格,例如目标物体需要进行打怪,则终点网格为目标物体要打的怪物所在的网格。通过将第一中心位置信息与合并网格的特征数据之间的对应关系存储在图数据结构中,可以在图数据结构中查找合并网格时,提高查找效率。
需要说明的是,图6对应的实施例中未提及的内容可参见方法实施例的描述,这里不再赘述。
本发明实施例中,获取网格地图中满足目标条件的第一网格和第二网格,所述目标条件包括:所述第一网格和所述第二网格的面积均小于第一阈值,所述第一网格包括至少三条第一边,所述第二网格包括至少三条第二边,所述至少三条第一边中存在一条第一边和所述至少三条第二边中的一条第二边相邻;对所述第一网格和所述第二网格进行合并处理,得到合并网格;根据所述第一网格的特征数据和所述第二网格的特征数据,确定所述合并网格的特征数据;根据所述合并网格的特征数据,计算目标物体在所述合并网格的导航路径。通过将网格地图中面积较小的网格进行合并得到面积较大的网格,可以简化网格地图中面积较小的网格的数量,从而在计算目标物体的导航路径时,由于网格的合并使得网格的数量减小,从而实现减少路径计算时的计算量,提高游戏运行性能;由于将网格地图中的网格与网格的特征数据之间的对应关系存储在图数据结构中,在获取网格的特征数据时,可以快速确定与该网格的特征数据对应的网格,提高查找效率,由于将网格的特征数据预先存储在图数据中,在对合并网格进行计算时,可以直接查询预先存储的网格的特征数据,无需再重新计算,可以减少计算量;由于对网格地图中面积较大的网格进行分裂,在计算导航路径时,避免了由于网格较大导致的绕路,从而使得计算结果更准确。
参见图7,图7是本发明实施例提供的一种路径确定设备的组成结构示意图,该设备70包括处理器701、存储器702以及输入输出接口703。处理器701连接到存储器702和输入输出接口703,例如处理器701可以通过总线连接到存储器702和输入输出接口703。
处理器701被配置为支持所述路径确定设备执行图1、图4所述的路径确定方法中相应的功能。该处理器701可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP),硬件芯片或者其任意组合。上述硬件芯片可以是专用集成电路(application specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器702用于存储程序代码等。存储器702可以包括易失性存储器(volatilememory,VM),例如随机存取存储器(random access memory,RAM);存储器702也可以包括非易失性存储器(non-volatile memory,NVM),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器702还可以包括上述种类的存储器的组合。
所述输入输出接口703用于输入或输出数据。
处理器701可以调用所述程序代码以执行以下操作:
获取网格地图中满足目标条件的第一网格和第二网格,所述目标条件包括:所述第一网格和所述第二网格的面积均小于第一阈值,所述第一网格包括至少三条第一边,所述第二网格包括至少三条第二边,所述至少三条第一边中存在一条第一边和所述至少三条第二边中的一条第二边相邻;
对所述第一网格和所述第二网格进行合并处理,得到合并网格;
根据所述第一网格的特征数据和所述第二网格的特征数据,确定所述合并网格的特征数据;
根据所述合并网格的特征数据,计算目标物体在所述合并网格的导航路径。
需要说明的是,各个操作的实现还可以对应参照上述方法实施例的相应描述;所述处理器701还可以与输入输出接口703配合执行上述方法实施例中的其他操作。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时使所述计算机执行如前述实施例所述的方法,所述计算机可以为上述提到的路径确定设备的一部分。例如为上述的处理器701。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (11)

1.一种路径确定方法,其特征在于,包括:
获取网格地图中满足目标条件的第一网格和第二网格,所述目标条件包括:所述第一网格和所述第二网格的面积均小于第一阈值,所述第一网格包括至少三条第一边,所述第二网格包括至少三条第二边,所述至少三条第一边中存在一条第一边和所述至少三条第二边中的一条第二边相邻;
对所述第一网格和所述第二网格进行合并处理,得到合并网格;
根据所述第一网格的特征数据和所述第二网格的特征数据,确定所述合并网格的特征数据;
根据所述合并网格的特征数据,计算目标物体在所述合并网格的导航路径。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述网格地图中的第三网格,所述第三网格的面积大于第二阈值;
对所述第三网格进行分裂处理,得到至少两个分裂网格;
根据所述第三网格的特征数据,分别确定每个所述分裂网格的特征数据;
分别根据每个所述分裂网格的特征数据,计算所述目标物体分别在所述分裂网格的导航路径。
3.根据权利要求1或2所述的方法,其特征在于,所述对所述第一网格和所述第二网格进行合并处理,得到合并网格,包括:
根据所述第一网格和所述第二网格构建封闭图形,所述封闭图形包括至少三个内角;
若所述至少三个内角中的每个内角均小于180度,则将所述封闭图形确定为对所述第一网格和所述第二网格进行合并处理后得到的合并网格。
4.根据权利要求2所述的方法,其特征在于,所述第三网格包括至少三条第三边,所述对所述第三网格进行分裂处理,得到至少两个分裂网格,包括:
针对所述至少三条第三边中的每条第三边,分别确定所述第三边对应的分裂位置,所述分裂位置不包含所述第三边的端点位置;
获取所述至少三条第三边对应的至少三个分裂位置,并根据所述至少三个分裂位置,确定对所述第三网格进行分裂得到的至少两个分裂网格,一条第三边对应一个分裂位置。
5.根据权利要求4所述的方法,其特征在于,所述针对所述至少三条第三边中的每条第三边,分别确定所述第三边对应的分裂位置,包括:
针对所述至少三条第三边中的每条第三边,获取所述第三边对应的分裂比例,并根据所述第三边对应的分裂比例确定所述第三边对应的分裂位置。
6.根据权利要求1所述的方法,其特征在于,所述合并网格的特征数据包括所述合并网格的至少三个第一顶点的位置信息;
所述方法还包括:
根据所述至少三个第一顶点的位置信息,计算所述合并网格的第一中心位置信息,并将所述第一中心位置信息与所述合并网格的特征数据之间的对应关系存储在图数据结构中。
7.根据权利要求2所述的方法,其特征在于,所述分裂网格的特征数据包括所述分裂网格的至少三个第二顶点的位置信息;
所述方法还包括:
根据所述至少三个第二顶点的位置信息,计算所述分裂网格的第二中心位置信息,并将所述第二中心位置信息与所述分裂网格的特征数据之间的对应关系存储在所述图数据结构中。
8.根据权利要求6或7所述的方法,其特征在于,所述图数据结构中包括多个中心位置信息与多个特征数据之间的对应关系,一个中心位置信息对应一个特征数据,所述多个中心位置信息是所述网格地图的多个网格的中心位置信息;
所述方法还包括:
接收网格查询指令,所述网格查询指令包括待查询的目标网格的至少三个第三顶点的位置信息;
根据所述至少三个第三顶点的位置信息,计算所述目标网格的第三中心位置信息;
从所述图数据结构中确定与所述第三中心位置信息匹配的中心位置信息,并将所述匹配的中心位置信息对应的特征数据作为所述目标网格的特征数据。
9.一种路径确定装置,其特征在于,包括:
第一网格查找模块,用于获取网格地图中满足目标条件的第一网格和第二网格,所述目标条件包括:所述第一网格和所述第二网格的面积均小于第一阈值,所述第一网格包括至少三条第一边,所述第二网格包括至少三条第二边,所述至少三条第一边中存在一条第一边和所述至少三条第二边中的一条第二边相邻;
网格合并模块,用于对所述第一网格和所述第二网格进行合并处理,得到合并网格;
特征数据确定模块,用于根据所述第一网格的特征数据和所述第二网格的特征数据,确定所述合并网格的特征数据;
路径计算模块,用于根据所述合并网格的特征数据,计算目标物体在所述合并网格的导航路径。
10.一种路径确定设备,其特征在于,包括处理器、存储器以及输入输出接口,所述处理器、存储器和输入输出接口相互连接,其中,所述输入输出接口用于输入或输出数据,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,执行如权利要求1-8任一项所述的方法。
11.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-8任一项所述的方法。
CN201911254537.XA 2019-12-06 2019-12-06 路径确定方法、装置及设备 Active CN110917624B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911254537.XA CN110917624B (zh) 2019-12-06 2019-12-06 路径确定方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911254537.XA CN110917624B (zh) 2019-12-06 2019-12-06 路径确定方法、装置及设备

Publications (2)

Publication Number Publication Date
CN110917624A true CN110917624A (zh) 2020-03-27
CN110917624B CN110917624B (zh) 2024-01-23

Family

ID=69858567

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911254537.XA Active CN110917624B (zh) 2019-12-06 2019-12-06 路径确定方法、装置及设备

Country Status (1)

Country Link
CN (1) CN110917624B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113413601A (zh) * 2021-07-16 2021-09-21 上海幻电信息科技有限公司 寻路方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005047086A1 (de) * 2005-09-30 2007-04-05 Robert Bosch Gmbh Verfahren zur Vereinfachung der Darstellbarkeit nicht-konvexer Polygone, eine Vorrichtung zur Durchführung des Verfahrens sowie ein Navigationssystem
CN103198234A (zh) * 2013-04-25 2013-07-10 腾讯科技(深圳)有限公司 一种寻路方法和装置
CN106110656A (zh) * 2016-07-07 2016-11-16 网易(杭州)网络有限公司 在游戏场景计算路线的方法和装置
CN106600697A (zh) * 2016-12-13 2017-04-26 东北大学 一种面向3d场景的导航网格地图表示方法
CN106582023A (zh) * 2016-12-01 2017-04-26 北京像素软件科技股份有限公司 一种游戏寻路方法和装置
CN106730841A (zh) * 2017-01-17 2017-05-31 网易(杭州)网络有限公司 一种寻路方法和装置
CN107358651A (zh) * 2017-06-14 2017-11-17 南京航空航天大学 一种对复杂三维曲面进行识别和分区划分网格的方法
WO2018130135A1 (zh) * 2017-01-13 2018-07-19 腾讯科技(深圳)有限公司 一种控制模拟对象寻路的方法、装置及服务器
CN109658509A (zh) * 2018-12-11 2019-04-19 中国测绘科学研究院 一种狭长图斑分块方法、装置、计算机设备和存储介质
CN109727519A (zh) * 2018-12-10 2019-05-07 成都运达科技股份有限公司 一种大规模虚拟人群仿真系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005047086A1 (de) * 2005-09-30 2007-04-05 Robert Bosch Gmbh Verfahren zur Vereinfachung der Darstellbarkeit nicht-konvexer Polygone, eine Vorrichtung zur Durchführung des Verfahrens sowie ein Navigationssystem
CN103198234A (zh) * 2013-04-25 2013-07-10 腾讯科技(深圳)有限公司 一种寻路方法和装置
CN106110656A (zh) * 2016-07-07 2016-11-16 网易(杭州)网络有限公司 在游戏场景计算路线的方法和装置
CN106582023A (zh) * 2016-12-01 2017-04-26 北京像素软件科技股份有限公司 一种游戏寻路方法和装置
CN106600697A (zh) * 2016-12-13 2017-04-26 东北大学 一种面向3d场景的导航网格地图表示方法
WO2018130135A1 (zh) * 2017-01-13 2018-07-19 腾讯科技(深圳)有限公司 一种控制模拟对象寻路的方法、装置及服务器
CN106730841A (zh) * 2017-01-17 2017-05-31 网易(杭州)网络有限公司 一种寻路方法和装置
CN107358651A (zh) * 2017-06-14 2017-11-17 南京航空航天大学 一种对复杂三维曲面进行识别和分区划分网格的方法
CN109727519A (zh) * 2018-12-10 2019-05-07 成都运达科技股份有限公司 一种大规模虚拟人群仿真系统
CN109658509A (zh) * 2018-12-11 2019-04-19 中国测绘科学研究院 一种狭长图斑分块方法、装置、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
海金刚俊杰: "把一个等边三角形分成4个等腰三角形 三种方法", pages 1 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113413601A (zh) * 2021-07-16 2021-09-21 上海幻电信息科技有限公司 寻路方法及装置
CN113413601B (zh) * 2021-07-16 2024-01-02 上海幻电信息科技有限公司 寻路方法及装置

Also Published As

Publication number Publication date
CN110917624B (zh) 2024-01-23

Similar Documents

Publication Publication Date Title
CN107952243B (zh) 路径确定方法及装置
CN110990516B (zh) 地图数据的处理方法、装置和服务器
CN106964156B (zh) 一种寻路方法以及装置
Kallmann Dynamic and robust local clearance triangulations
Bungiu et al. Efficient computation of visibility polygons
CN111750883B (zh) 作业路径的确定方法、装置、存储介质和电子设备
CN109668561B (zh) 一种室内路径规划方法、终端及可读存储介质
CN111063032B (zh) 模型渲染方法、系统及电子装置
Chen et al. Research on Ship Meteorological Route Based on A‐Star Algorithm
CN110428386B (zh) 地图网格合并方法、装置、存储介质、电子装置
CN113671973A (zh) 目标区域的搜索方法及装置、电子设备、存储介质
CN109727252B (zh) 一种任意分割线分割多边形的方法
CN110917624B (zh) 路径确定方法、装置及设备
CN115014328A (zh) 一种栅格地图的动态加载方法、装置、设备和介质
CN113658342B (zh) Ar导航路径生成的方法、系统、电子装置和存储介质
CN115779424B (zh) 一种导航网格寻路方法、装置、设备及介质
CN116764225B (zh) 一种高效寻路的处理方法、装置、设备及介质
CN109360215B (zh) 三维模型的外轮廓查找方法、装置、设备和存储介质
CN110827393A (zh) 图像处理方法、装置、存储介质及电子设备
CN115920401A (zh) 寻路方法、装置、电子设备及可读存储介质
CN114240976A (zh) 一种地图迭代切分方法、装置、设备及存储介质
CN110909097B (zh) 多边形电子围栏生成方法、装置、计算机设备和存储介质
CN114510053A (zh) 机器人规划路径校验方法、装置、存储介质及电子设备
Gruppi et al. An Efficient and Topologically Correct Map Generalization Heuristic.
CN112263836A (zh) 虚拟场景的处理方法和装置以及存储介质

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