Unity 關於Lerp插值的基本原理

2021-08-02 13:58:22 字數 772 閱讀 4309

插值這個東西,對於很多新手來說,只是停留在使用的階段,知道什麼時候用,但是運算機制卻不甚了解。

最近發現,很多新人有這麼一種想法:已經封裝好的演算法,都是很高深的,我們直接用就好了,沒有必要去了解它的實現方式。

這種想法是不對的。很多東西,只因為你是站在門外的,所以你看不透徹,當你邁進門裡面的時候,就會覺得不過如此。

囉嗦了很多,就是希望看到這篇的帖子的剛出道的新手們,能有乙個打破砂鍋問到底的精深。

高深之所以高深,只是因為你還沒有理解。

言歸正傳,說一下lerp的實現:

float lerp(float a,float b,float t)

return a+(b-a)*t;

有沒有大跌眼鏡!!當然,我寫的這個方法只是解釋一下它的基本原理。

unity中提供的與lerp有關的常用api有下面幾個:

mathf.lerp(float a, float b, float t)

mathf.lerpangle(float a, float b, float t)

vector3.lerp(vector3 a,vector3 b, float t)

所有插值的原理都是一樣的,只是針對特定的應用目標,加入了其他的一些內容。比如角度插值lerpangle,它只是幫助你封裝了角度範圍的控制。

這裡有必要點一下,不管是math還是vector裡面的lerp的返回值value一定是a<=value<=b的。但是他們也都有另乙個不限制範圍的lerp方法,lerpunclamped()。

Unity獲取 滑鼠 插值的 幾種 方法

說說思路實現 unity中獲取 滑鼠插值的原理是 用上一幀滑鼠的位置 減去這一幀的滑鼠位置的值,然後要進行對第一次進行判斷,判斷這一次位置是不是原來的值,如果不是就進行差 運算,得出偏移量。再把上一次的位置的值給這個一次 private vector2 offest private vector2 ...

徑向基網路(RBF)實現函式插值(擬合)

訓練集與測試集 train x 1 0.1 7 train y sin 2.train x test x 0 0.01 8 test y sin 2.test x 引數初始化 rbf.inputsize size train x,1 輸入神經元的個數 rbf.hiddensize 60 隱層神經元的...

插值查詢的問題

對於插值查詢的效率很高,但是我發現乙個問題,就是在不連續的情況下,找 arrarr之間的數時應該是返回 1,但是出現了堆疊溢位異常 以下是 public static void main string args int i insertvalue arr,0,arr.length 1,50 syst...