路径确定方法及装置与流程

文档序号:14262249阅读:209来源:国知局
路径确定方法及装置与流程

本发明涉及计算机技术领域,具体而言,涉及一种路径确定方法及装置。



背景技术:

目前,由于互联网传输速度的提升,大量应用、虚拟现实服务在互联网上逐步扩展,例如虚拟展馆、虚拟博物馆、3d游戏等,这些应用服务必须使用寻路系统,帮助移动单位绕过障碍物到达目的地。特别是在带有多人在线版本的虚拟现实应用中,例如3d游戏,其寻路系统需要计算当前位置与目的位置之间的移动的路径,通常通过穷举的方式计算两点之间的路径,计算过程中要消耗服务器大量的计算资源。



技术实现要素:

为了克服上述现有技术中的不足,本发明提供一种路径确定方法及装置,通过沿障碍区域的边缘进行搜索减少了计算量,进而解决上述问题。

为了实现上述目的,本发明较佳实施例所提供的技术方案如下所示:

本发明较佳实施例提供一种路径确定方法,应用于电子设备,所述电子设备存储有场景地图,所述场景地图包括可达的畅通区域及不可达的障碍区域,所述场景地图包括呈阵列分布的节点,所述节点包括畅通节点及障碍节点,每个所述节点关联有对应的位置信息,所述位置信息包括所述节点对应的横纵坐标数据;该方法包括:

获取所述场景地图上起点位置的第一位置信息及终点位置的第二位置信息;

根据所述第一位置信息、第二位置信息及曼哈顿算法,构建第一路径;

判断所述第一路径是否经过所述障碍区域;

当所述第一路径经过所述障碍区域时,获取与所述障碍区相邻的畅通节点的位置信息,连接相邻的畅通节点以作为避障路径;

将所述第一路径中位于所述障碍区域内的路径替换成所述避障路径,以形成目标路径,所述目标路径为所述起点位置到所述终点位置的路径。

可选地,上述获取与所述障碍区相邻的畅通节点的位置信息,连接相邻的畅通节点以作为避障路径的步骤,包括:

将所述第一路径中靠近所述起点位置且与所述障碍区相邻的畅通节点作为第1避障节点;

从与第i避障节点相邻的周边节点中选取与所述障碍区相邻的畅通节点,以作为与所述第i避障节点连接的第i+1避障节点,其中,i为大于等于1的整数;

当选取的所述第i+1避障节点为中断节点时,停止选取,并连接相邻的避障节点,以形成所述避障路径,其中,所述中断节点为所述第一路径中靠近所述终点位置且与所述障碍区相邻的畅通节点。

可选地,若所述第1避障节点与所述中断节点存在至少两条避障路径时,所述方法还包括:

选取包含的节点数最少的避障路径作为目标避障路径。

可选地,上述方法还包括:

对所述目标路径进行优化,将优化后的目标路径作为所述起点位置到所述终点位置的新路径。

可选地,上述对所述目标路径进行优化,将优化后的目标路径作为所述起点位置到所述终点位置的新路径的步骤,包括:

对所述目标路径上的各节点进行连续编号,将所述起点位置的节点作为第1节点;

判断第k节点与第k+1节点的横坐标或纵坐标是否相同,其中,k为大于等于1的整数,所述第k+1节点为与所述第k节点相邻的下一节点,均位于所述目标路径中;

若所述第k节点与第k+1节点横坐标相同,从所述第k节点之后的节点中查找是否存在与第k节点的纵坐标相同的节点,且查找的所述节点与所述第k节点之间的形成的直线路径不经过所述障碍区;

若存在查找的节点,以查找的所述节点与所述第k节点之间的形成的直线路径,替换原目标路径中查找的所述节点与所述第k+1节点的路径,以形成新的目标路径。

可选地,上述对所述目标路径进行优化,将优化后的目标路径作为所述起点位置到所述终点位置的新路径的步骤,包括:

对所述目标路径上的各节点进行连续编号,将所述起点位置的节点作为第1节点;

判断第k节点与第k+1节点的横坐标或纵坐标是否相同,其中,k为大于等于1的整数,所述第k+1节点为与所述第k节点相邻的下一节点,均位于所述目标路径中;

若所述第k节点与第k+1节点纵坐标相同,从所述第k节点之后的节点中查找是否存在与第k节点的横坐标相同的节点,且查找的所述节点与所述第k节点之间的形成的直线路径不经过所述障碍区;

若存在查找的节点,以查找的所述节点与所述第k节点之间的形成的直线路径,替换原目标路径中查找的所述节点与所述第k+1节点的路径,以形成新的目标路径。

可选地,上述判断所述第一路径是否经过障碍区域的步骤,包括:

若所述第一路径中的节点的位置信息中存在位于所述障碍区域对应的位置范围内的位置信息,所述第一路径便经过所述障碍区域;

若所述第一路径中的节点的位置信息均不位于所述障碍区域对应的位置范围内,所述第一路径便不经过所述障碍区域。

可选地,当所述第一路径不经过所述障碍区域时,所述方法还包括:

将构建的所述第一路径作为所述目标路径。

本发明的较佳实施例还提供一种路径确定装置,应用于电子设备,所述电子设备存储有场景地图,所述场景地图包括可达的畅通区域及不可达的障碍区域,所述场景地图包括呈阵列分布的节点,所述节点包括畅通节点及障碍节点,每个所述节点关联有对应的位置信息,所述位置信息包括所述节点对应的横纵坐标数据;所述路径确定装置包括:

位置获取单元,用于获取所述场景地图上起点位置的第一位置信息及终点位置的第二位置信息;

路径构建单元,用于根据所述第一位置信息、第二位置信息及曼哈顿算法,构建第一路径;

障碍判断单元,用于判断所述第一路径是否经过所述障碍区域;

获取连接单元,用于当所述第一路径经过所述障碍区域时,获取与所述障碍区相邻的畅通节点的位置信息,连接相邻的畅通节点以作为避障路径;

路径替换单元,用于将所述第一路径中位于所述障碍区域内的路径替换成所述避障路径,以形成目标路径,所述目标路径为所述起点位置到所述终点位置的路径。

可选地,上述获取连接单元还用于:

将所述第一路径中靠近所述起点位置且与所述障碍区相邻的畅通节点作为第1避障节点;

从与第i避障节点相邻的周边节点中选取与所述障碍区相邻的畅通节点,以作为与所述第i避障节点连接的第i+1避障节点,其中,i为大于等于1的整数;

当选取的所述第i+1避障节点为中断节点时,停止选取,并连接相邻的避障节点,以形成所述避障路径,其中,所述中断节点为所述第一路径中靠近所述终点位置且与所述障碍区相邻的畅通节点。

相对于现有技术而言,本发明提供的路径确定方法及装置至少具有以下有益效果:本发明提供的方案通过沿障碍区域的边缘搜索路径,以减少计算量,从而降低对电子设备对计算资源的消耗。具体地,该方案通过获取场景地图上起点位置的第一位置信息及终点位置的第二位置信息;根据第一位置信息、第二位置信息及曼哈顿算法,构建第一路径;判断第一路径是否经过所述障碍区域;当第一路径经过所述障碍区域时,获取与障碍区相邻的畅通节点的位置信息,连接相邻的畅通节点以作为避障路径;将第一路径中位于障碍区域内的路径替换成避障路径,以形成目标路径,该目标路径为起点位置到终点位置的路径。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举本发明较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明较佳实施例提供的电子设备的方框示意图。

图2为本发明较佳实施例提供的路径确定方法的流程示意图。

图3为本发明较佳实施例提供的图2中步骤s240的子步骤的流程示意图。

图4为本发明方法的节点状态标识示意图。

图5为本发明方法得到的路径的示意图。

图6为本发明较佳实施例提供的路径确定装置的方框示意图。

图标:10-电子设备;11-处理单元;12-通信单元;13-存储单元;100-路径确定装置;110-位置获取单元;120-路径构建单元;130-障碍判断单元;140-获取连接单元;150-路径替换单元。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在现有技术中,例如,在游戏地图中确定两目标之间的路径时(两目标之间存在障碍),通常通过穷举的方式得到两目标之间的路径,导致对计算资源的消耗较大。可理解地,该计算资源可以为电子设备的处理器中用于计算距离的部分所占百分比。

如何提供一种科学的路径确定方法,能够降低对计算资源的消耗,是本领域技术人员的一大难题。鉴于上述问题,本申请发明人经过长期研究探索,提出以下实施例以解决上述问题。下面结合附图,对本发明实施例作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参照图1,为本发明较佳实施例提供的电子设备10的方框示意图。该电子设备10可以是,但不限于,智能手机、个人电脑(personalcomputer,pc)、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)等。

在本实施例中,所述电子设备10可以包括处理单元11、通信单元12、存储单元13以及路径确定装置100,所述处理单元11、通信单元12、存储单元13以及路径确定装置100各个元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。

所述处理单元11可以是处理器。例如,该处理器可以是中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)、图形处理器(graphicsprocessingunit,gpu)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。

所述通信单元12用于通过网络与服务器的通信连接,并通过所述网络收发数据。该服务器可以为用于游戏服务的游戏服务器。

所述存储单元13可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。在本实施例中,所述存储单元13可以用于存储场景地图。当然,所述存储器还可以用于存储程序,所述处理单元11在接收到执行指令后,执行该程序。

进一步地,所述路径确定装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储单元13中或固化在所述电子设备10操作系统(operatingsystem,os)中的软件功能模块。所述处理单元11用于执行所述存储单元13中存储的可执行模块,例如路径确定装置100所包括的软件功能模块及计算机程序等。

可以理解的是,图1所示的结构仅为电子设备10的一种结构示意图,所述电子设备10还可以包括比图1所示更多或更少的组件。比如,该电子设备10可以作为单机游戏设备,不设置通信单元12。图1中所示的各组件可以采用硬件、软件或其组合实现。

请参照图2,为本发明较佳实施例提供的路径确定方法的流程示意图。在本实施例中,路径确定方法可应用于上述的电子设备10,通过该电子设备10执行该路径确定方法,以减少对计算资源的消耗。其中,该电子设备10存储有场景地图,所述场景地图包括可达的畅通区域及不可达的障碍区域,所述场景地图包括呈阵列分布的节点,所述节点包括畅通节点及障碍节点,每个所述节点关联有对应的位置信息,所述位置信息包括所述节点对应的横纵坐标数据。

可理解地,一个节点可以指场景地图中的一个矩形网格区域,障碍区域内的节点为游戏角色不可经过的节点,也就是障碍节点;畅通区域内的节点为游戏角色可经过的节点,也就是畅通节点。

下面将对图2中所示路径确定方法的各步骤进行详细阐述,在本实施例中,该路径确定方法可以包括以下步骤:

步骤s210,获取所述场景地图上起点位置的第一位置信息及终点位置的第二位置信息。

可理解地,起点位置可以为目标游戏角色所在的位置(节点)的坐标数据,终点位置为目标游戏角色需要到达的目的位置的坐标数据。

步骤s220,根据所述第一位置信息、第二位置信息及曼哈顿算法,构建第一路径。

可选地,沿与起点的横坐标相同的方向向靠近终点的方向构建第一路径,在构建的节点的纵坐标与终点的纵坐标相同时,以当前节点为拐点,沿直线向终点继续构建路径,直到构建的节点与终点相邻,便停止构建。

或者,沿与起点的纵坐标相同的方向向靠近终点的方向构建第一路径,在构建的节点的横坐标与终点的横坐标相同时,以当前节点为拐点,沿直线向终点继续构建路径,直到构建的节点与终点相邻,便停止构建。

步骤s230,判断所述第一路径是否经过所述障碍区域。

可理解地,若所述第一路径中的节点的位置信息中存在位于所述障碍区域对应的位置范围内的位置信息,所述第一路径便经过所述障碍区域;

若所述第一路径中的节点的位置信息均不位于所述障碍区域对应的位置范围内,所述第一路径便不经过所述障碍区域。

进一步地,若第一路径不经过障碍区域,构建的第一路径便为起点位置与终点位置之间的路径,也就是目标路径。若第一路径经过障碍区域,则沿该障碍区域的边缘构建路径。

步骤s240,当所述第一路径经过所述障碍区域时,获取与所述障碍区相邻的畅通节点的位置信息,连接相邻的畅通节点以作为避障路径。

请参照图3,为本发明较佳实施例提供的图2中步骤s240的子步骤的流程示意图。可选地,步骤s240可以包括子步骤s241至子步骤s243。

子步骤s241,将所述第一路径中靠近所述起点位置且与所述障碍区相邻的畅通节点作为第1避障节点。

子步骤s242,从与第i避障节点相邻的周边节点中选取与所述障碍区相邻的畅通节点,以作为与所述第i避障节点连接的第i+1避障节点,其中,i为大于等于1的整数。

子步骤s243,当选取的所述第i+1避障节点为中断节点时,停止选取,并连接相邻的避障节点,以形成所述避障路径,其中,所述中断节点为所述第一路径中靠近所述终点位置且与所述障碍区相邻的畅通节点。

可理解地,避障节点为预组成避障路径的节点,而所述第一路径中靠近所述起点位置且与所述障碍区相邻的畅通节点作为第1避障节点,与第1避障节点相邻的避障节点为第2避障节点。也就是从与第i避障节点相邻的周边节点中选取与所述障碍区相邻的畅通节点,以作为与所述第i避障节点连接的第i+1避障节点,然后针对选取的每个避障节点,分别将相邻的两个避障节点连接(或者按照避障节点的递增顺序或递减顺序依次将各避障节点连接起来),以组成避障路径。

可选地,若所述第1避障节点与所述中断节点存在至少两条避障路径时,所述方法还包括:选取包含的节点数最少的避障路径作为目标避障路径,以优化确定的路径,进而减少起点到终点的路径的距离。

步骤s250,将所述第一路径中位于所述障碍区域内的路径替换成所述避障路径,以形成目标路径,所述目标路径为所述起点位置到所述终点位置的路径。

可选地,该方法在步骤s250之后,还可以对目标路径进行优化。例如,该方法还可以包括:对所述目标路径进行优化,将优化后的目标路径作为所述起点位置到所述终点位置的新路径。

可选地,对目标路径进行优化的步骤可以包括:对所述目标路径上的各节点进行连续编号,将所述起点位置的节点作为第1节点;判断第k节点与第k+1节点的横坐标或纵坐标是否相同,其中,k为大于等于1的整数,所述第k+1节点为与所述第k节点相邻的下一节点,均位于所述目标路径中;若所述第k节点与第k+1节点横坐标相同,从所述第k节点之后的节点中查找是否存在与第k节点的纵坐标相同的节点,且查找的所述节点与所述第k节点之间的形成的直线路径不经过所述障碍区;若存在查找的节点,以查找的所述节点与所述第k节点之间的形成的直线路径,替换原目标路径中查找的所述节点与所述第k+1节点的路径,以形成新的目标路径。

或者,对目标路径进行优化的步骤包括:对所述目标路径上的各节点进行连续编号,将所述起点位置的节点作为第1节点;判断第k节点与第k+1节点的横坐标或纵坐标是否相同,其中,k为大于等于1的整数,所述第k+1节点为与所述第k节点相邻的下一节点,均位于所述目标路径中;若所述第k节点与第k+1节点纵坐标相同,从所述第k节点之后的节点中查找是否存在与第k节点的横坐标相同的节点,且查找的所述节点与所述第k节点之间的形成的直线路径不经过所述障碍区;若存在查找的节点,以查找的所述节点与所述第k节点之间的形成的直线路径,替换原目标路径中查找的所述节点与所述第k+1节点的路径,以形成新的目标路径。

请结合参照图4和图5,其中,图4为本发明方法的节点状态标识示意图,图5为本发明方法得到的路径的示意图。其中,a所在的节点可用于表示起点位置,b所在的节点可用于表示终点位置。目标路径可以为如图5中所示的待优化节点及确定的路径节点组合成的路径。而待优化节点组成的路径可被优化节点组成的路径进行替换,以得到新的目标路径,而该新的目标路径也就是确定的起点位置与终点位置的路径。

进一步地,图5中所示m、n均为大于等于1的整数,m表示当前节点沿确定的路径到起点位置的节点数(或者距离);n表示起点位置到终点位置的曼哈顿距离,且m小于等于n。可理解地,上述第1避障节点为图5中m=3的节点,上述中断节点为m=21的节点,在对首次确定的目标路径进行优化时,m=9的节点便为优化时查找的节点(在图5中,可理解为m=9的节点与起点的横坐标相同)。

基于上述设计,通过沿障碍区域的边缘计算确定起点到终点的路径,减少了对路径确定的计算量,进而降低对计算资源的消耗,另外,通过对首次得到的目标路径进行优化,可得到路径距离更短的目标路径。

请参照图6,为本发明较佳实施例提供的路径确定装置100的方框示意图。该路径确定装置100可以应用于电子设备10,用于执行上述的路径确定方法。该电子设备10存储有场景地图,所述场景地图包括可达的畅通区域及不可达的障碍区域,所述场景地图包括呈阵列分布的节点,所述节点包括畅通节点及障碍节点,每个所述节点关联有对应的位置信息,所述位置信息包括所述节点对应的横纵坐标数据。其中,该路径确定装置100可以包括位置获取单元110、路径构建单元120、障碍判断单元130、获取连接单元140及路径替换单元150。

位置获取单元110,用于获取所述场景地图上起点位置的第一位置信息及终点位置的第二位置信息。具体地,位置获取单元110可以用于执行图2所示的步骤s210,具体执行的操作内容可参照对步骤s210的详细描述。

路径构建单元120,用于根据所述第一位置信息、第二位置信息及曼哈顿算法,构建第一路径。具体地,路径构建单元120可以用于执行图2所示的步骤s220,具体执行的操作内容可参照对步骤s220的详细描述。

障碍判断单元130,用于判断所述第一路径是否经过所述障碍区域。具体地,障碍判断单元130可以用于执行图2所示的步骤s230,具体执行的操作内容可参照对步骤s230的详细描述。

获取连接单元140,用于当所述第一路径经过所述障碍区域时,获取与所述障碍区相邻的畅通节点的位置信息,连接相邻的畅通节点以作为避障路径。

可选地,获取连接单元140还用于:将所述第一路径中靠近所述起点位置且与所述障碍区相邻的畅通节点作为第1避障节点;从与第i避障节点相邻的周边节点中选取与所述障碍区相邻的畅通节点,以作为与所述第i避障节点连接的第i+1避障节点,其中,i为大于等于1的整数;当选取的所述第i+1避障节点为中断节点时,停止选取,并连接相邻的避障节点,以形成所述避障路径,其中,所述中断节点为所述第一路径中靠近所述终点位置且与所述障碍区相邻的畅通节点。

具体地,获取连接单元140可以用于执行图2所示的步骤s240及图3所示的步骤s240的各子步骤,具体执行的操作内容可参照对步骤s240及其子步骤的详细描述。

路径替换单元150,用于将所述第一路径中位于所述障碍区域内的路径替换成所述避障路径,以形成目标路径,所述目标路径为所述起点位置到所述终点位置的路径。具体地,路径替换单元150可以用于执行图2所示的步骤s250,具体执行的操作内容可参照对步骤s250的详细描述。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。

综上所述,本发明提供一种路径确定方法及装置。本发明提供的方案通过沿障碍区域的边缘搜索路径,以减少计算量,从而降低对电子设备对计算资源的消耗。具体地,该方案通过获取场景地图上起点位置的第一位置信息及终点位置的第二位置信息;根据第一位置信息、第二位置信息及曼哈顿算法,构建第一路径;判断第一路径是否经过所述障碍区域;当第一路径经过所述障碍区域时,获取与障碍区相邻的畅通节点的位置信息,连接相邻的畅通节点以作为避障路径;将第一路径中位于障碍区域内的路径替换成避障路径,以形成目标路径,该目标路径为起点位置到终点位置的路径。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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