目录
1.定向运动简介
2.线性插值简介
3.模拟游戏中运用到的定向运动的线性插值介绍
4.效果展示
5.部分代码展示
一、定向运动简介
(1)根据百度百科的官方解释:定向运动就是利用地图和指北针依次到达地图上所示的各个地点,以最短时间到达所有地点者为胜。定向运动通常在森林、郊区和城市公园里进行,也可以在大学校园里进行。定向运动起源于瑞典,最初只是一项军事体育活动。“定向”这两个字在1886年首次使用,意思是在地图和指北针的帮助下,越过不被人所知的地带。
(2)我们所设定的定向运动:我们沿用了定性运动的部分定义,并在此定义上对其进行了拓展和修改。群体运动指的定向运动是群体对象(可以是人、动物等具有群体意识的生物),为了到达某一个地方,同时向某一块区域移动。
二、线性插值简介
线性插值:是指插值函数为一次多项式的插值方式,其在插值节点上的插值误差为零。线性插值相比其他插值方式,如抛物线插值,具有简单、方便的特点。线性插值的几何意义即为概述图中利用过A点和B点的直线来近似表示原函数。线性插值可以用来近似代替原函数,也可以用来计算得到查表过程中表中没有的数值。
双线性插值:在地球物理中,会经常用到双线性插值(Bilinear interpolation)。比如,模拟生成的地表均匀网格上的速度场或者同震位移场。要与GPS观测点上的观测同震位移场进行比较。就必须将均匀网格点的值插值到GPS太站上。这就需要用到双线性插值。
三线性插值:三线性插值是在三维离散采样数据的张量积网格上进行线性插值的方法。这个张量积网格可能在每一维度上都有任意不重叠的网格点,但并不是三角化的有限元分析网格。这种方法通过网格上数据点在局部的矩形棱柱上线性地近似计算点 (x,y,z) 的值。
Unity中的线性插值函数介绍—Lerp()函数:
static functionLerp (from : float,to : float, t : float) : float
- 基于浮点数t返回a到b之间的插值,t限制在0~1之间。当t = 0返回from,当t = 1 返回to。当t = 0.5 返回from和to的平均值。
- 有时,我们在做游戏时会发现有些跟随动作不够圆滑或者需要一个缓冲的效果,这时,一般会考虑到插值。所以对插值的理解是必需的。(比如摄像机跟随主角)
- 插值是数学上的一个概念,在这里用公式表示就是:from + (to - from) * t;这也就是Lerp的返回值(用这个公式分别算出x,y,z)。
- static function Lerp (from :Vector3, to : Vector3, t : float) : Vector3 from 是起始的位置,to是目标位置,按照数字t在from到to之间插值。
三、模拟游戏中运用到的定向运动的线性插值介绍
- 该游戏中,由于新建医院的操作,将会有一批感染者需要定向移动到医院所在的区域。而这个定向移动不能够仅仅只是瞬间移动的,需要缓慢移动到医院区域,体现移动的过程,所以就需要在unity中的update函数中使用线性插值移动群体。
- 在这里我才去的办法是,首先找到医院所在的区域,然后为了是得所有的感染者能够到达这个区域,所以预先给每个感染者随即设定这个区域内的某一个位置,然后找到所有的感染者,利用插值函数,移动物体。