缓解立方 - 函数参数解释

Bun*_*ori 15 javascript algorithm math animation

在这个伟大的网页上,我找到了一个缓动算法列表,可以为我的网页增添不错的视觉吸引力.

尽管如此,我发现在那里简要提到了函数参数(见下文),算法的行为并不像我希望的那样.我可以请求解释在下面提到的函数的参数中应该输入什么值/范围?

参数列表:

  • t:当前时间 - 这里应该是值0 ... 1还是当前帧的实数?
  • b:起始值 - 我假设,正在移动的对象的起始X或Y坐标
  • c:值的变化 - 这里所有帧都能一直是数字1吗?
  • d:持续时间 - 共有帧数?

Math.easeOutCubic = function (t, b, c, d) { t /= d; t--; return c*(t*t*t + 1) + b; };
Run Code Online (Sandbox Code Playgroud)

是否应将值逐步添加到从函数获得的最后一个值,还是应将它们添加到初始0位置?

kir*_*oid 15

你是对的,d是持续时间,t是当前时间.因此,t应该从0d.

c总变化,应该等于end value- start value.

  • 因为t = 0我们有c*(-1 + 1) + bb
  • 因为t = d我们有c*(0 + 1) + bb + c

对于任何fps,功能都是相同的,这取决于你更新位置和调用函数的频率.