Animation 为什么缓和/缓和函数实现通常有多个参数?
我在生活中发现的大多数easing函数集合都有复杂的函数签名,比如jQuery:Animation 为什么缓和/缓和函数实现通常有多个参数?,animation,math,tween,easing,Animation,Math,Tween,Easing,我在生活中发现的大多数easing函数集合都有复杂的函数签名,比如jQuery:函数easing(x,t,b,c,d){…}。示例: 为什么需要所有这些参数?如果按照标准化的比例,使用 一个介于0和1之间的输入值 一个介于0和1之间的输出值(通常,但不是在特殊情况下,如“弹性”) 并使用以下函数将其包装以使用任意开始/结束时间和值: function wrapEasing(fn, startTime, endTime, now, startValue, endValue) {
函数easing(x,t,b,c,d){…}
。示例:
- 一个介于0和1之间的输入值
- 一个介于0和1之间的输出值(通常,但不是在特殊情况下,如“弹性”)
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和1之间。当然,要应用缓和,需要所有值。只是不计算实际的“缓和进度”