扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
插值,从字面意思上看,就是在其间插入一个数值,这种理解是否正确呢?我们先从最简单的浮点数插值函数来分析:
创新互联建站-专业网站定制、快速模板网站建设、高性价比岳西网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式岳西网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖岳西地区。费用合理售后完善,10多年实体公司更值得信赖。
Mathf .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之间插值。
参考
这个函数是UnityEngine这个命名空间下数学库中的一个函数,lerp的意思就是插值。也就是在给定两个变量和一个比例,返回一个差值的结果。
这个方法没有重载,函数形式是:float Mathf.Lerp(float a, float b, float t)
其中,a表示起始值,b表示终止值,也就是a希望差值过去的方向,t实际为插值比例,t只有0-1中间的float有效。
用数学表达这个式子的话,就相当于return=a+(b-a)t,即返回值是以a为起点,向b的方向前进了t个比例,其中如果t属于[0,1],如果超出了范围,则默认为上界或者下届的值,类似于做了个Clamp
这里我用unity的debug输出了一部分供参考及
lerp函数就是线性插值用的,lerp(a,b,mixValue)返回的值,就是a*(1-mixValue)+b*mixValue
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流