缓出立方 - 函数参数说明

15
在这个伟大的网页上,我发现了一些缓动算法,可以为我的网页添加漂亮的视觉效果。
尽管有关函数参数的简短提及(如下所示),但该算法的行为并不符合我的期望。我能否请求解释下面提到的函数参数应输入哪些值/范围?
参数列表:
- t:当前时间 - 这里应该是值0...1,还是当前帧的实际数字? - b:起始值 - 我假设是移动对象的起始X或Y坐标 - c:值的变化量 - 对于所有帧,是否可以始终使用数字1? - d:持续时间 - 总共的帧数?
这些值应该逐步添加到从函数获得的最后一个值中,还是应该添加到初始0位置?


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



1
这个链接非常详细地解释了我的问题:http://upshots.org/actionscript/jsas-understanding-easing - Bunkai.Satori
1个回答

15
您说得对,d代表持续时间,t代表当前时间。因此,t的取值应在0d之间。 c是总变化量,应等于结束值减去开始值
  • t = 0时,我们有c*(-1 + 1) + bb
  • t = d时,我们有c*(0 + 1) + bb + c
该函数对于任何帧速率都相同,您可以自行决定更新位置的频率并调用该函数。

+1,你好。感谢您的回复。我回家后会尝试新的信息进行计算。问题是:b(起始值)是否也可以是负数?比如说,如果我想将对象从屏幕外移动,也就是从-50y到250y之间移动。不确定这个公式是否适用于这种情况。 - Bunkai.Satori
是的,只有当您将“t”从0更改为某个负值时,它才能按预期方式工作。 - kirilloid
我可以确认,在正确理解函数参数后,2D对象的行为表现得非常自然。因此,我将您的回答标识为“已接受的答案”。 - Bunkai.Satori

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接