2013-05-08 43 views
0

我正在學習緩衝函數在XNA中的應用。但我無法理解它的數學方程式。我無法理解緩動函數的數學方程

例如,用於BackEase公式:

f(t) = t^3 - a * t * sin (t * pi) 

SinEase:

f(t) = 1 - [Sin (1 - t) * (pi/2)] 

和BounceEase,ElasticEase(我找不到它的配方)......他們爲什麼要應用它?

+2

什麼叫 「無法理解」 是什麼意思?緩動函數的要點是提供從0到1的平滑過渡,如果將這些方程式放入任何交互式圖形應用程序(例如wolfram alpha) – Alnitak 2013-05-08 08:50:06

回答

2

我不是這方面的專家,但都是關於平滑過渡效果。

E.g.從黃色到藍色,線性寬鬆讓你從黃色到綠色的突然開始,然後是從黃綠色到藍綠色的完美平滑漸變,然後是藍色的突然變化。

對於反彈緩解,它會從黃色變爲略帶綠色並且變回黃色,然後變爲稍帶綠色的背部,然後變爲藍綠色和後背,然後變爲完全藍色。

http://hosted.zeh.com.br/tweener/docs/en-us/misc/transitions.html中的圖表給出了可以進行哪些其他轉換的概述。

這些轉換中的每一個都是作爲一個數學函數或一組函數來實現的,它們給出了時間t函數中的百分比轉換。

對於BackEase,使用例如A = 1/3,給出了:http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427elqqoohmvph

在僞代碼,這是一個過渡過程中發生了什麼:

int yellow = ... 
int blue = ... 
float a = ... 
for(int i = 1 to 100) 
{ 
    float t = i/100 

    float f = t^3 - a * t * sin (t * pi) //--> BackEase function 

    set color = yellow + f * (blue - yellow) 
    sleep 
} 
+0

+1中以指示樣例轉換,則這些方程式應產生這些方程式。爲什麼有人會使用easeInOutBounce(右下角)?看起來像一個「試了一下,嘗試,更加努力,ooooph我做到了,現在放鬆」過渡;-) – 2013-05-08 09:01:36

+0

@JanDoggen Becoz你可以:-) – greyfairer 2013-05-08 09:20:44

+0

請幫助我的例子!非常感謝 :) – user2360585 2013-05-08 15:47:03