Unity3d 的 Mathf.Lerp 插值是啥意思 ? 是取两个数之间中间数吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d 的 Mathf.Lerp 插值是啥意思 ? 是取两个数之间中间数吗?相关的知识,希望对你有一定的参考价值。

参考技术A

插值是根据Lerp(a,b,t)中的第三个参数t来返回a和b之间的值
如果t是变化的,比如Time.time,则在一秒之内从a变化到b。

插值,从字面意思上看,就是在其间插入一个数值。从最简单的浮点数插值函数来分析:

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的平均值。

小松教你手游开发unity实用技能线性差值计算实现

其实这个unity本身就有的函数Mathf.Lerp(),为什么还要自己实现呢。

有一个原因就是这个函数返回的是float型,float型如果数字非常大,转出int时会有精度丢失,也就是转出来的值不对。

而且非常简单。

看下公式

public int Lerp(int a,int b,int v)  
{  
 return (int)(a - (0 - v) / (0 - 1) * (a - b));  
}  

以上是关于Unity3d 的 Mathf.Lerp 插值是啥意思 ? 是取两个数之间中间数吗?的主要内容,如果未能解决你的问题,请参考以下文章