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 插值是啥意思 ? 是取两个数之间中间数吗?的主要内容,如果未能解决你的问题,请参考以下文章

unity3d中如何让物体从一个点自动移动到另一个点呢,

Unity3D中如何使对象自动移动从一个点到另一个点

unity 怎么sprite一直在屏幕范围内移动

unity3d中. 地面上有一个文字, 文字上有一个cube, 现在我想在上方往下看,能透过cube看的到文字,

Unity中的平滑过渡方法了解

(转)Unity3D 之插值计算