插值,從字面意思上看,就是在其間插入一個數(shù)值,這種理解是否正確呢?我們先從最簡單的浮點數(shù)插值函數(shù)來分析:
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比岳西網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式岳西網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋岳西地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。
Mathf .Lerp 插值
static functionLerp (from : float, to : float, t : float) : float
基于浮點數(shù)t返回a到b之間的插值,t限制在0~1之間。當(dāng)t = 0返回from,當(dāng)t = 1 返回to。當(dāng)t = 0.5 返回from和to的平均值。
有時,我們在做游戲時會發(fā)現(xiàn)有些跟隨動作不夠圓滑或者需要一個緩沖的效果,這時,一般會考慮到插值。所以對插值的理解是必需的。(比如攝像機跟隨主角)
插值是數(shù)學(xué)上的一個概念,在這里用公式表示就是:from + (to - from) * t;這也就是Lerp的返回值(用這個公式分別算出x,y,z)。
static function Lerp (from : Vector3 , to : Vector3 , t : float) : Vector3
from 是起始的位置,to是目標(biāo)位置,按照數(shù)字t在from到to之間插值。
參考
這個函數(shù)是UnityEngine這個命名空間下數(shù)學(xué)庫中的一個函數(shù),lerp的意思就是插值。也就是在給定兩個變量和一個比例,返回一個差值的結(jié)果。
這個方法沒有重載,函數(shù)形式是:float Mathf.Lerp(float a, float b, float t)
其中,a表示起始值,b表示終止值,也就是a希望差值過去的方向,t實際為插值比例,t只有0-1中間的float有效。
用數(shù)學(xué)表達這個式子的話,就相當(dāng)于return=a+(b-a)t,即返回值是以a為起點,向b的方向前進了t個比例,其中如果t屬于[0,1],如果超出了范圍,則默認為上界或者下屆的值,類似于做了個Clamp
這里我用unity的debug輸出了一部分供參考及
lerp函數(shù)就是線性插值用的,lerp(a,b,mixValue)返回的值,就是a*(1-mixValue)+b*mixValue