为什么缓动/补间功能实现通常有多个参数?

时间:2015-03-27 09:35:40

标签: animation math tween easing

我生命中发现的大多数缓动函数集都有复杂的函数签名,例如jQuery:function easing (x, t, b, c, d) { ... }。例子:

为什么需要所有这些参数?如果在http://easings.net/上以标准化的比例显示这些功能,那将更容易实现

  • 介于0和1之间的一个输入值
  • 一个输出值(通常,但不是在特殊情况下,例如'弹性')介于0和1之间

并使用以下函数将这些包装用于arbirtrary开始/结束时间和值:

function wrapEasing(fn, startTime, endTime, now, startValue, endValue) {
    var progress = (now - startTime) / (endTime - startTime);
    var easedProgress = fn(progress);
    return startValue + easedProgress * (endValue - startValue);
}

(这是一个数学问题,我使用javascript语法作为例子 - 它适用于所有编程语言。)


是的,我也找到了其他例子:

问题是 - 为什么许多人以复杂的方式做到这一点?也许是因为那需要函数式编程?

0 个答案:

没有答案