我无法理解缓和函数的数学方程

时间:2013-05-08 08:33:12

标签: function math easing equations

我正在学习Xasing中的Easingfunction应用程序。但我无法理解它的数学方程式。

例如,用于BackEase的公式:

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

SinEase:

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

和BounceEase,ElasticEase(我找不到它的公式)......为什么要应用它?

1 个答案:

答案 0 :(得分: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 
}