CN113577772A - 基于瓦片地图的单位移动方法、装置及可读存储介质 - Google Patents

基于瓦片地图的单位移动方法、装置及可读存储介质 Download PDF

Info

Publication number
CN113577772A
CN113577772A CN202111133622.8A CN202111133622A CN113577772A CN 113577772 A CN113577772 A CN 113577772A CN 202111133622 A CN202111133622 A CN 202111133622A CN 113577772 A CN113577772 A CN 113577772A
Authority
CN
China
Prior art keywords
coordinates
collision
point
tile map
map
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
CN202111133622.8A
Other languages
English (en)
Other versions
CN113577772B (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.)
Shenzhen Yifan Interactive Technology Co ltd
Original Assignee
Shenzhen Yifan Interactive 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 Shenzhen Yifan Interactive Technology Co ltd filed Critical Shenzhen Yifan Interactive Technology Co ltd
Priority to CN202111133622.8A priority Critical patent/CN113577772B/zh
Publication of CN113577772A publication Critical patent/CN113577772A/zh
Application granted granted Critical
Publication of CN113577772B publication Critical patent/CN113577772B/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
    • 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/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/577Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明涉及一种基于瓦片地图的单位移动方法、装置及可读存储介质,方法包括步骤:将地图光栅化为瓦片地图,并标记每个格子是否可以通行;当单位在地图上移动时,计算出移动路径上第一个碰撞到的碰撞点坐标;获取碰撞点坐标周边的点是否可以通行,由此计算出单元所碰撞到的斜边的方向;单元贴合该斜边进行移动:根据碰撞点坐标、斜边的方向及预想的终点坐标计算出单元实际到的终点坐标。本发明提出的方法用于快速计算移动碰撞逻辑的方案,其具备简单、高效的优点,同时也可用于帧同步游戏中。

Description

基于瓦片地图的单位移动方法、装置及可读存储介质
技术领域
本发明涉及游戏人物控制技术领域,特别是涉及一种基于瓦片地图的单位移动方法、装置及可读存储介质。
背景技术
网络游戏以互联网为传输媒介,以游戏运营商服务器和用户计算机为处理终端,以游戏客户端软件为信息交互窗口的个体性多人在线游戏。在基于Tile Map(瓦片地图)的游戏中处理移动逻辑时,传统做法为将角色固定在格子正中间,每次移动时跳一格的棋盘走法,或者是只能四方向自由移动,碰到阻挡后就停止移动。
游戏中,如果需要做成全方向自由移动,对于碰撞的处理普遍采取使用商业2D物理引擎的方式。对于帧同步游戏,由于各个玩家使用的计算机cpu在运算浮点数有不同的进位策略,故会导致计算不一致的问题,商业化物理引擎无法自己进行定点数改造。因此,在使用帧同步作为网络同步方案的游戏中无法使用物理引擎进行游戏中的角色贴合碰撞边缘平滑移动。如何在帧同步游戏中进行简单、高效的游戏角色平滑移动,是目前亟待解决的一个问题。
发明内容
基于此,有必要针对以上的问题,提供一种基于瓦片地图的单位移动方法、装置及可读存储介质。
本发明提出了一种基于瓦片地图的单位移动方法,包括步骤:
S10:将地图光栅化为瓦片地图,并标记每个格子是否可以通行;
S20:当单位在地图上移动时,计算出移动路径上第一个碰撞到的碰撞点坐标;
S30:获取碰撞点坐标周边的点是否可以通行,由此计算出单元所碰撞到的斜边的方向;
S40:单元贴合该斜边进行移动:根据碰撞点坐标、斜边的方向及预想的终点坐标计算出单元实际到的终点坐标。
进一步地,当单位在地图上移动时,通过直线光栅化算法计算出移动路径上第一个碰撞到的碰撞点坐标。
进一步地,其中,步骤S20中,
每一格子的左下角的坐标代表此格子坐标,设单元的原点为P0(X0, Y0),预想的终点为Pn(Xn, Yn),自P0(X0, Y0)到Pn(Xn, Yn)画一条直线,X,Y分别代表水平及垂直坐标;
在Xn-X0 > Yn-Y0时,直线的斜率K=(Yn-Y0)/(Xn-X0),且K的值处于0和1之间;
设D为K的累加值,有Di=
Figure 539979DEST_PATH_IMAGE001
+K;直线上任意一点Pi坐标为(Xi,Yi);
第一个碰撞到的碰撞点Pt(Xt, Yt)则有:当Di大于等于1时, Xt = Xi -(Di -1)/K, Yt=Yi;
当Di小于1时,Xt=Xi,Yt=Yi+Di;
当Xn-X0<=Yn-Y0时:直线的斜率K=(Xn-X0)/(Yn-Y0),且K的值处于0和1之间;
设D为K的累加值,有Di=
Figure 962870DEST_PATH_IMAGE001
+K;直线上任意一点Pi坐标为(Xi,Yi);
第一个碰撞到的碰撞点Pt(Xt, Yt)则有:当Di大于等于1时, Xi =
Figure 422758DEST_PATH_IMAGE002
+ 1;
当Di大于等于1时, Yt = Yi -(Di - 1)/K, Xt=Xi;
当Di小于1时,Yt = Yi,Xt = Xi + Di;
其中,
Figure 854876DEST_PATH_IMAGE001
Figure 11051DEST_PATH_IMAGE002
分别为第i-1个点所对应的D及X值。
进一步地,碰撞到第一个碰撞点Pt(Xt, Yt)后;当直线路径与Y轴方向上的边碰撞,则碰撞后移动方向为Dir(0, ±1),Dir中的Y值的符号与(Yn-Y0)相同;当直线路径与X轴方向上的边碰撞时,则碰撞后移动方向为Dir(±1, 0),Dir的X值符号与(Xn-X0)相同。
进一步地,步骤S30中:在Xn-X0>Yn-Y0的情况下,如(Xt-1,Yt+1)或(Xt-1,Yt-1)中有且仅有一个点为不可通行时,说明存在斜边;
坐标为(Xt-1,Yt+1)为不可通行时,斜边的法线方向为:N(-
Figure 621155DEST_PATH_IMAGE003
/2,-
Figure 292308DEST_PATH_IMAGE003
/2);否则 斜边的法线方向为:N(-
Figure 278850DEST_PATH_IMAGE003
/2,
Figure 351848DEST_PATH_IMAGE003
/2)。
进一步地,步骤S40中:
设斜边所对的顶点为锚点Pivot(Px,Py),Pn到Pivot的向量为V(Vx,Vy)Pn到斜边的向量为Vd(D,D);
当斜边法线方向为N(-
Figure 132853DEST_PATH_IMAGE003
/2,-
Figure 291302DEST_PATH_IMAGE003
/2)时,有Pivot =(Xn+0.5,Yn+0.5);
当斜边法线方向为N(-
Figure 815955DEST_PATH_IMAGE003
/2,
Figure 743460DEST_PATH_IMAGE003
/2)时,有Pivot =(Xn-0.5,Yn+0.5);
设格子边长为1,则有Abs(Vx) + Abs(Vy)+Abs(D)=1,Pn到斜边的向量为:
Vd=(-Abs(D)/2,-Abs(D)/2)=(-(1-Abs(Vx)-Abs(Vy))/2,-(1-Abs(Vx)-
Abs(Vy))/2);单元实际到的终点坐标为:Pn+Vd。
进一步地,步骤S40中:
设斜边所对的顶点为锚点Pivot(Px,Py),Pn到Pivot的向量为V(Vx,Vy)Pn到斜边的向量为Vd(D,D);
当斜边法线方向为N(-
Figure 695367DEST_PATH_IMAGE003
/2,-
Figure 341112DEST_PATH_IMAGE003
/2)时,有Pivot =(Xn+0.5,Yn+0.5);
当斜边法线方向为N(-
Figure 403877DEST_PATH_IMAGE003
/2,
Figure 451467DEST_PATH_IMAGE003
/2)时,有Pivot =(Xn-0.5,Yn+0.5);
设格子边长为1,则有Abs(Vx) + Abs(Vy)+Abs(D)=1,Pn到斜边的向量为:
Vd=(-Abs(D)/2,-Abs(D)/2)=(-(1-Abs(Vx)-Abs(Vy))/2,-(1-Abs(Vx)-
Abs(Vy))/2);单元实际到的终点坐标为:Pn+Vd。
进一步地,当P0(X0, Y0)点的坐标不与格子的顶点重合时,将P0点延伸至与所在格子的Y轴相交,且赋予D一个初始值a,a=Y0-(X0-1)/K。
另一方面,本发明还提出了一种基于瓦片地图的单位移动装置,包括:
光栅化模块:将地图光栅化为瓦片地图,并标记每个格子是否可以通行;
碰撞点计算模块:当单位在地图上移动时,计算出移动路径上第一个碰撞到的碰撞点坐标;
斜边计算模块:获取碰撞点坐标周边的点是否可以通行,由此计算出单元所碰撞到的斜边的方向;
终点计算模块:单元贴合该斜边进行移动:根据碰撞点坐标、斜边的方向及预想的终点坐标计算出单元实际到的终点坐标。
再一方面,本发明还提出一种基于瓦片地图的单位移动装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的基于瓦片地图的单位移动方法的步骤。
又一方面,本发明还提出了一种基于瓦片地图的单位移动的可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述的基于瓦片地图的单位移动方法的步骤。
本发明技术方案中,将地图光栅化后对不可通行的格子进行标记,首先计算出路径上第一个碰撞到的碰撞点坐标,并计算出倾斜边的方向,后由碰撞点坐标、斜边的方向及预想的终点坐标计算出单元贴合该斜边移动后的终点坐标。本发明提出的方法用于快速计算移动碰撞逻辑的方案,其具备简单、高效的优点,同时也可用于帧同步游戏中。
附图说明
图1为本发明的基于瓦片地图的单位移动方法一实施例的流程示意图。
图2为本发明的基于瓦片地图的单位移动方法光栅化后的移动路径示意图。
图3为本发明的基于瓦片地图的单位移动方法步骤S20中的碰撞点计算示意图。
图4为本发明的基于瓦片地图的单位移动方法步骤S30中的斜边计算示意图。
图5为本发明的基于瓦片地图的单位移动方法步骤S40中的终点坐标计算示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做清楚、完整的描述。显然,以下描述的具体细节只是本发明的一部分实施例,本发明还能够以很多不同于在此描述的其他实施例来实现。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下,所获得的所有其他实施例,均属于本发明的保护范围。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的,并不表示是唯一的实施方式。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
在一实施例中,请参阅图1所示,一方面,本发明提出了一种基于瓦片地图的单位移动方法,包括步骤:
S10:将地图光栅化为瓦片地图,并标记每个格子是否可以通行;
S20:当单位在地图上移动时,计算出移动路径上第一个碰撞到的碰撞点坐标;
S30:获取碰撞点坐标周边的点是否可以通行,由此计算出单元所碰撞到的斜边的方向;
S40:单元贴合该斜边进行移动:根据碰撞点坐标、斜边的方向及预想的终点坐标计算出单元实际到的终点坐标。
本发明技术方案中,将地图光栅化后对不可通行的格子进行标记,首先计算出路径上第一个碰撞到的碰撞点坐标,并计算出倾斜边的方向,后由碰撞点坐标、斜边的方向及预想的终点坐标计算出单元贴合该斜边移动后的终点坐标。本发明提出的方法用于快速计算移动碰撞逻辑的方案,其具备简单、高效的优点,同时也可用于帧同步游戏中。
参照图2所示,灰色格子表示不可通行区域,白色格子表示可通行区域,倾斜的箭头表示预计移动路径,箭头有部分处于不可通行部分,说明移动中遇到了阻挡。为了简单模拟真实世界中的刚体物理碰撞,在移动遇到时期望保留移动路径上不受到到阻挡影响的部分移动分量,此移动分量在图2的例子中即为横向的箭头处于不可通行部分在水平方向上的投影。最终的移动路径就是图2横向的箭头。
具体地,参照图3,当单位在地图上移动时,通过直线光栅化算法计算出移动路径上第一个碰撞到的碰撞点坐标。其中,步骤S20中,每一格子的左下角的坐标代表此格子坐标,设单元的原点为P0(X0, Y0),预想的终点为Pn(Xn, Yn),自P0(X0, Y0)到Pn(Xn, Yn)画一条直线,X,Y分别代表水平及垂直坐标;
假设现在需要从P0(X0, Y0)到Pn(Xn, Yn)画一条直线,X,Y分别代表水平及垂直坐标。
在Xn-X0 > Yn-Y0时,直线的斜率K=(Yn-Y0) / (Xn-X0),K的值处于0和1之间。如果X的每增加1,Y的值必定增加K。现在用D来保存K的累加值,则对于直线上任意一点Pi(Xi,Yi) 经过的格子坐标则有:
Di =
Figure 574275DEST_PATH_IMAGE001
+ K;Xi =
Figure 707316DEST_PATH_IMAGE002
+ 1;
当Di大于等于1时, Yi =
Figure 567913DEST_PATH_IMAGE004
+ 1,(Xi,
Figure 735589DEST_PATH_IMAGE004
) 和 (Xi,Yi) 都为经过的格子,之后 Di减小1;
当Di小于1时, Yi =
Figure 29298DEST_PATH_IMAGE004
设D为K的累加值,有Di =
Figure 384056DEST_PATH_IMAGE001
+ K;直线上任意一点Pi坐标为(Xi,Yi);
第一个碰撞到的碰撞点Pt(Xt, Yt)则有:当Di大于等于1时, Xt = Xi -(Di -1)/K, Yt = Yi;
当Di小于1时,Xt = Xi,Yt = Yi + Di;
当Xn-X0<=Yn-Y0时,直线的斜率K=(Xn-X0)/(Yn-Y0),且K的值处于0和1之间。如果Y的每增加1,X的值必定增加K。现在用D来保存K的累加值,则对于直线上任意一点Pi (Xi,Yi) 经过的格子坐标则有:
Di =
Figure 54203DEST_PATH_IMAGE001
+ K;Yi =
Figure 810806DEST_PATH_IMAGE004
+ 1;
当Di大于等于1时, Xi =
Figure 275417DEST_PATH_IMAGE002
+ 1, (
Figure 383050DEST_PATH_IMAGE002
, Yi) 和 (Xi, Yi) 都为经过的格子, 之后Di减小1;
当Di小于1时, Xi =
Figure 591309DEST_PATH_IMAGE002
设D为K的累加值,有Di =
Figure 202419DEST_PATH_IMAGE001
+ K;直线上任意一点Pi坐标为(Xi,Yi);
第一个碰撞到的碰撞点Pt(Xt, Yt)则有:当Di大于等于1时, Yt = Yi -(Di -1)/K, Xt=Xi;
当Di小于1时,Yt = Yi,Xt = Xi + Di;
其中,Xi、Yi及Di分别为第i个点所对应的D、X、Y值;而
Figure 103510DEST_PATH_IMAGE001
Figure 432860DEST_PATH_IMAGE002
Figure 444809DEST_PATH_IMAGE004
分别为第 i-1个点(即第i个点的前一个点)所对应的D、X、Y值
本实施例基础上,进一步地,碰撞到第一个碰撞点Pt(Xt, Yt)后;当直线路径与Y轴方向上的边碰撞,则碰撞后移动方向为Dir(0, ±1),Dir的Y值的符号与(Yn-Y0)相同;当直线路径与X轴方向上的边碰撞时,则碰撞后移动方向为Dir(±1, 0),Dir的X值符号与(Xn-X0)相同。
根据格子轴对齐特性,可以得出路径与格子碰撞后,碰到的边必定与X轴或Y轴平行。当Y坐标需要增加1时,路径与格子Y轴方向上的边碰撞,则碰撞后移动方向为Dir(0, ±1),Y值的符号与(Yn-Y0)相同;当Y坐标不需要增加1时,路径与格子X轴方向上的边碰撞,则碰撞后移动方向为Dir(±1, 0),其中±1的符号与(Xn-X0)相同。最终应该移动到的坐标为:Pt + Dot(Dir, Pn - Pt)。
参照图4所示,具体地,步骤S30中:在Xn-X0>Yn-Y0的情况下,如(Xt-1,Yt+1)或(Xt-1,Yt-1)中有且仅有一个点为不可通行时,说明存在斜边;
坐标为(Xt-1,Yt+1)为不可通行时,斜边的法线方向为:N(-
Figure 910426DEST_PATH_IMAGE003
/2,-
Figure 185681DEST_PATH_IMAGE003
/2);否则 斜边的法线方向为:N(-
Figure 2327DEST_PATH_IMAGE003
/2,
Figure 546529DEST_PATH_IMAGE003
/2)。
参照图5所示,具体地,步骤S40中:设斜边所对的顶点为锚点Pivot(Px,Py),Pn到Pivot的向量为V(Vx,Vy)Pn到斜边的向量为Vd(D,D);
当斜边法线方向为N(-
Figure 132231DEST_PATH_IMAGE003
/2,-
Figure 375124DEST_PATH_IMAGE003
/2)时,有Pivot =(Xn+0.5,Yn+0.5);
当斜边法线方向为N(-
Figure 413487DEST_PATH_IMAGE003
/2,
Figure 767240DEST_PATH_IMAGE003
/2)时,有Pivot =(Xn-0.5,Yn+0.5);
设格子边长为1,则有Abs(Vx) + Abs(Vy)+Abs(D)=1,Pn到斜边的向量为:
Vd=(-Abs(D)/2,-Abs(D)/2)=(-(1-Abs(Vx)-Abs(Vy))/2,-(1-Abs(Vx)-
Abs(Vy))/2);单元实际到的终点坐标为:Pn+Vd。
具体地,当P0(X0, Y0)点的坐标不与格子的顶点重合时,将P0点延伸至与所在格子的Y轴相交,且赋予D一个初始值a,a=Y0-(X0-1)/K。
另一方面,本发明还提出了一种基于瓦片地图的单位移动装置,包括:
光栅化模块:将地图光栅化为瓦片地图,并标记每个格子是否可以通行;
碰撞点计算模块:当单位在地图上移动时,计算出移动路径上第一个碰撞到的碰撞点坐标;
斜边计算模块:获取碰撞点坐标周边的点是否可以通行,由此计算出单元所碰撞到的斜边的方向;
终点计算模块:单元贴合该斜边进行移动:根据碰撞点坐标、斜边的方向及预想的终点坐标计算出单元实际到的终点坐标。
再一方面,本发明还提出一种基于瓦片地图的单位移动装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如上的基于瓦片地图的单位移动方法的步骤。
又一方面,本发明还提出了一种基于瓦片地图的单位移动的可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上的基于瓦片地图的单位移动方法的步骤。
本发明技术方案根据tile map轴对齐的特点快速计算出碰撞后的移动方向与移动距离,达到平滑贴合碰撞边缘移动的目的,可适用于帧同步游戏中。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形、替换及改进,这些都应涵盖在本发明的保护范围之内。因此,本发明专利的保护范围应以权利要求为准。

Claims (10)

1.一种基于瓦片地图的单位移动方法,其特征在于,包括步骤:
S10:将地图光栅化为瓦片地图,并标记每个格子是否可以通行;
S20:当单位在地图上移动时,计算出移动路径上第一个碰撞到的碰撞点坐标;
S30:获取碰撞点坐标周边的点是否可以通行,由此计算出单元所碰撞到的斜边的方向;
S40:单元贴合该斜边进行移动:根据碰撞点坐标、斜边的方向及预想的终点坐标计算出单元实际到的终点坐标。
2.根据权利要求1所述的基于瓦片地图的单位移动方法,其特征在于,当单位在地图上移动时,通过直线光栅化算法计算出移动路径上第一个碰撞到的碰撞点坐标。
3.根据权利要求2所述的基于瓦片地图的单位移动方法,其特征在于,其中,步骤S20中,
每一格子的左下角的坐标代表此格子坐标,单元的原点为P0(X0, Y0),预想的终点为Pn(Xn, Yn),自P0(X0, Y0)到Pn(Xn, Yn)画一条直线,X,Y分别代表水平及垂直坐标;
在Xn-X0 > Yn-Y0时,直线的斜率K=(Yn-Y0)/(Xn-X0),且K的值处于0到1之间;
设D为K的累加值,有Di=
Figure 260146DEST_PATH_IMAGE001
+K;直线上任意一点Pi坐标为(Xi,Yi);
第一个碰撞到的碰撞点Pt(Xt, Yt)则有:当Di大于等于1时, Xt = Xi -(Di - 1)/K,Yt=Yi;
当Di小于1时,Xt= Xi,Yt=Yi+Di;
当Xn-X0<=Yn-Y0时:直线的斜率K=(Xn-X0)/(Yn-Y0),且K的值处于0和1之间;
设D为K的累加值,有Di=
Figure 642716DEST_PATH_IMAGE001
+K;直线上任意一点Pi坐标为(Xi,Yi);
第一个碰撞到的碰撞点Pt(Xt, Yt)则有:当Di大于等于1时, Xi =
Figure 527627DEST_PATH_IMAGE002
+ 1;
当Di大于等于1时, Yt = Yi -(Di - 1)/K, Xt=Xi;
当Di小于1时,Yt = Yi,Xt = Xi + Di;
其中,
Figure 46464DEST_PATH_IMAGE001
Figure 788155DEST_PATH_IMAGE002
分别为第i-1个点所对应的D及X值。
4.根据权利要求3所述的基于瓦片地图的单位移动方法,其特征在于,碰撞到第一个碰撞点Pt(Xt, Yt)后;当直线路径与Y轴方向上的边碰撞,则碰撞后移动方向为Dir(0, ±1),Dir的Y值的符号与(Yn-Y0)相同;当直线路径与X轴方向上的边碰撞时,则碰撞后移动方向为Dir(±1, 0),Dir的X值符号与(Xn-X0)相同。
5.根据权利要求3所述的基于瓦片地图的单位移动方法,其特征在于,步骤S30中:在Xn-X0>Yn-Y0的情况下,如(Xt-1,Yt+1)或(Xt-1,Yt-1)中有且仅有一个点为不可通行时,说明存在斜边;
坐标为(Xt-1,Yt+1)为不可通行时,斜边的法线方向为:N(-
Figure 392443DEST_PATH_IMAGE003
/2,-
Figure 346624DEST_PATH_IMAGE003
/2);否则斜边的 法线方向为:N(-
Figure 641339DEST_PATH_IMAGE003
/2,
Figure 366980DEST_PATH_IMAGE003
/2)。
6.根据权利要求5所述的基于瓦片地图的单位移动方法,其特征在于,步骤S40中:
设斜边所对的顶点为锚点Pivot(Px,Py),Pn到Pivot的向量为V(Vx,Vy)Pn到斜边的向量为Vd(D,D);
当斜边法线方向为N(-
Figure 939125DEST_PATH_IMAGE003
/2,-
Figure 431417DEST_PATH_IMAGE003
/2)时,有Pivot=(Xn+0.5,Yn+0.5);
当斜边法线方向为N(-
Figure 456005DEST_PATH_IMAGE003
/2,
Figure 8340DEST_PATH_IMAGE003
/2)时,有Pivot=(Xn-0.5,Yn+0.5);
设格子边长为1,则有Abs(Vx) + Abs(Vy)+Abs(D)=1,Pn到斜边的向量为:
Vd=(-Abs(D)/2,-Abs(D)/2)=(-(1-Abs(Vx)-Abs(Vy))/2,-(1-Abs(Vx)-
Abs(Vy))/2);单元实际到的终点坐标为:Pn+Vd。
7.根据权利要求3所述的基于瓦片地图的单位移动方法,其特征在于,当P0(X0, Y0)点的坐标不与格子的顶点重合时,将P0点延伸至与所在格子的Y轴相交,且赋予D一个初始值a,a=Y0-(X0-1)/K。
8.一种基于瓦片地图的单位移动装置,其特征在于,包括:
光栅化模块:将地图光栅化为瓦片地图,并标记每个格子是否可以通行;
碰撞点计算模块:当单位在地图上移动时,计算出移动路径上第一个碰撞到的碰撞点坐标;
斜边计算模块:获取碰撞点坐标周边的点是否可以通行,由此计算出单元所碰撞到的斜边的方向;
终点计算模块:单元贴合该斜边进行移动:根据碰撞点坐标、斜边的方向及预想的终点坐标计算出单元实际到的终点坐标。
9.一种基于瓦片地图的单位移动装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:所述处理器执行所述程序时实现权利要求1至7中任意一项所述的基于瓦片地图的单位移动方法的步骤。
10.一种基于瓦片地图的单位移动的可读存储介质,其上存储有计算机程序,其特征在于:该计算机程序被处理器执行时实现权利要求1至7中任意一项所述的基于瓦片地图的单位移动方法的步骤。
CN202111133622.8A 2021-09-27 2021-09-27 基于瓦片地图的单位移动方法、装置及可读存储介质 Active CN113577772B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111133622.8A CN113577772B (zh) 2021-09-27 2021-09-27 基于瓦片地图的单位移动方法、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111133622.8A CN113577772B (zh) 2021-09-27 2021-09-27 基于瓦片地图的单位移动方法、装置及可读存储介质

Publications (2)

Publication Number Publication Date
CN113577772A true CN113577772A (zh) 2021-11-02
CN113577772B CN113577772B (zh) 2022-01-11

Family

ID=78242223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111133622.8A Active CN113577772B (zh) 2021-09-27 2021-09-27 基于瓦片地图的单位移动方法、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN113577772B (zh)

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080256007A1 (en) * 2007-04-10 2008-10-16 Microsoft Corporation Learning A* priority function from unlabeled data
CN103528585A (zh) * 2013-09-26 2014-01-22 中北大学 一种不等距分割可通行区域的路径规划方法
CN103927934A (zh) * 2013-01-14 2014-07-16 北京中交兴路信息科技有限公司 一种闭合围栏绘制的方法及系统
CN104318768A (zh) * 2014-10-27 2015-01-28 杭州智诚惠通科技有限公司 基于Hadoop的自适应交通信息瓦片地图生成系统及方法
CN104331080A (zh) * 2014-11-21 2015-02-04 中国人民解放军国防科学技术大学 用于移动式机器人的定点跟踪路径规划方法
CN109116841A (zh) * 2018-07-23 2019-01-01 昆明理工大学 一种基于蚁群算法的路径规划平滑优化方法
CN109978999A (zh) * 2017-12-27 2019-07-05 浙江宇视科技有限公司 坐标标定方法、装置及终端设备
CN110487279A (zh) * 2019-08-27 2019-11-22 东南大学 一种基于改进a*算法的路径规划方法
CN111289005A (zh) * 2020-03-16 2020-06-16 江苏理工学院 一种基于a星优化算法的寻路方法
CN111338359A (zh) * 2020-04-30 2020-06-26 武汉科技大学 一种基于距离判断和角度偏转的移动机器人路径规划方法
CN111880534A (zh) * 2020-07-17 2020-11-03 桂林电子科技大学 一种基于栅格地图的二次路径规划方法
EP3779363A1 (en) * 2019-08-14 2021-02-17 Bayerische Motoren Werke Aktiengesellschaft Method and system for vehicle routing based on parking probabilities
CN112686429A (zh) * 2020-12-16 2021-04-20 天津城建大学 移动机器人及其基于自适应遗传算法的路径规划方法
CN112717404A (zh) * 2021-01-25 2021-04-30 腾讯科技(深圳)有限公司 虚拟对象的移动处理方法、装置、电子设备及存储介质
CN112908146A (zh) * 2020-12-26 2021-06-04 云景文旅科技有限公司 一种手绘地图切割呈现方法以及智慧导游导览系统
CN113228042A (zh) * 2018-12-28 2021-08-06 辉达公司 自主机器应用中障碍物检测的距离
CN113219992A (zh) * 2021-06-04 2021-08-06 深圳飞鼠动力科技有限公司 一种路径规划方法及清洁机器人
CN113219993A (zh) * 2021-06-04 2021-08-06 深圳飞鼠动力科技有限公司 一种路径规划方法及清洁机器人

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080256007A1 (en) * 2007-04-10 2008-10-16 Microsoft Corporation Learning A* priority function from unlabeled data
CN103927934A (zh) * 2013-01-14 2014-07-16 北京中交兴路信息科技有限公司 一种闭合围栏绘制的方法及系统
CN103528585A (zh) * 2013-09-26 2014-01-22 中北大学 一种不等距分割可通行区域的路径规划方法
CN104318768A (zh) * 2014-10-27 2015-01-28 杭州智诚惠通科技有限公司 基于Hadoop的自适应交通信息瓦片地图生成系统及方法
CN104331080A (zh) * 2014-11-21 2015-02-04 中国人民解放军国防科学技术大学 用于移动式机器人的定点跟踪路径规划方法
CN109978999A (zh) * 2017-12-27 2019-07-05 浙江宇视科技有限公司 坐标标定方法、装置及终端设备
CN109116841A (zh) * 2018-07-23 2019-01-01 昆明理工大学 一种基于蚁群算法的路径规划平滑优化方法
CN113228042A (zh) * 2018-12-28 2021-08-06 辉达公司 自主机器应用中障碍物检测的距离
EP3779363A1 (en) * 2019-08-14 2021-02-17 Bayerische Motoren Werke Aktiengesellschaft Method and system for vehicle routing based on parking probabilities
CN110487279A (zh) * 2019-08-27 2019-11-22 东南大学 一种基于改进a*算法的路径规划方法
CN111289005A (zh) * 2020-03-16 2020-06-16 江苏理工学院 一种基于a星优化算法的寻路方法
CN111338359A (zh) * 2020-04-30 2020-06-26 武汉科技大学 一种基于距离判断和角度偏转的移动机器人路径规划方法
CN111880534A (zh) * 2020-07-17 2020-11-03 桂林电子科技大学 一种基于栅格地图的二次路径规划方法
CN112686429A (zh) * 2020-12-16 2021-04-20 天津城建大学 移动机器人及其基于自适应遗传算法的路径规划方法
CN112908146A (zh) * 2020-12-26 2021-06-04 云景文旅科技有限公司 一种手绘地图切割呈现方法以及智慧导游导览系统
CN112717404A (zh) * 2021-01-25 2021-04-30 腾讯科技(深圳)有限公司 虚拟对象的移动处理方法、装置、电子设备及存储介质
CN113219992A (zh) * 2021-06-04 2021-08-06 深圳飞鼠动力科技有限公司 一种路径规划方法及清洁机器人
CN113219993A (zh) * 2021-06-04 2021-08-06 深圳飞鼠动力科技有限公司 一种路径规划方法及清洁机器人

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高敏: "移动机器人全局路径规划的增强蚁群优化算法", 《南昌航空大学学报(自然科学版)》 *

Also Published As

Publication number Publication date
CN113577772B (zh) 2022-01-11

Similar Documents

Publication Publication Date Title
CN101727580B (zh) 图像处理装置、图像处理单元和图像处理方法
US8743114B2 (en) Methods and systems to determine conservative view cell occlusion
JP6159807B2 (ja) 3次元シーンをレンダリングするためのコンピュータグラフィックス方法
CN109583509B (zh) 数据生成方法、装置及电子设备
US8395614B2 (en) Generating an asset for interactive entertainment using digital image capture
JP2009514111A (ja) 座標化された混合因子分析法を用いた3次元ヒューマンモーションの単眼追跡
JP2008033940A (ja) ランタイム・コンピュータ・グラフィックス・アニメーション・エンジンにおけるメッシュ用変形データからスケルトン用アニメーション・データへの変換、スキニング、およびシェーディング
US8934715B2 (en) Human pose estimation in visual computing
US20090153557A1 (en) Horizon split ambient occlusion
US8576248B2 (en) Image processing method and image processing apparatus
JP2012247832A (ja) 情報処理装置、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体、厚み領域設定装置、厚み領域設定方法、厚み領域設定プログラム、厚み領域設定プログラムを記憶したコンピュータ読み取り可能な記録媒体、仮想空間における面に関するデータ構造
KR20060046491A (ko) 화상 처리
CN115018992A (zh) 发型模型的生成方法、装置、电子设备及存储介质
CN115700779A (zh) 虚拟模型的形变控制方法、装置和电子设备
CN111681302A (zh) 一种3d虚拟形象的生成方法、装置、电子设备及存储介质
CN113577772B (zh) 基于瓦片地图的单位移动方法、装置及可读存储介质
CN110991534A (zh) 点云数据处理方法、装置、设备及计算机可读存储介质
CN116109767A (zh) 三维场景的渲染方法、图像处理器、电子设备及存储介质
Camporesi et al. Computing shortest path maps with GPU shaders
US7936355B2 (en) Methods for simulating and visually representing objects using particles
Wong et al. Dynamic radial view based culling for continuous self-collision detection
Ozgen et al. Directional constraint enforcement for fast cloth simulation
CN114254501A (zh) 一种大规模草地渲染与仿真方法
Debenham New algorithms for computing field of vision over 2D grids
Shamoushaki et al. Monocular Reconstruction of Conformal Surfaces through Optimization

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