用于计算大数的自定义缓和方程

时间:2015-09-05 19:49:41

标签: javascript easing

我想将计数从0渲染到一些非常大的数字,让我们说3秒内1,000,000,这有点短暂的时间计算到一百万。

live playground

问题是,它需要一个非常具体的缓和,因此计数效果将达到其最佳状态,并且开始缓慢,计算前10%( 持续时间 )慢,然后加速到持续时间的~60%,然后在剩余的时间内逐渐减速40%。

01之间输入始终 如何创建这样的宽松公式?

应该采用这种方式,t介于01之间(基本示例):

function(t){ return t*t; }

我有一个在每个"框架上运行代码的功能"动画进程,它通过帧速率限制器,t值是给定持续时间内的当前进度。

1 个答案:

答案 0 :(得分:0)

Gompertz function怎么样?

e.g。类似的东西(来自某些代数的常数估计+一些作弊实验,所以数字并不完全是你指定的):

function ease_gompertz(t) {
    return 1000000 * Math.exp(-30 * Math.exp(-13 * t));
}

为此,我假设t从0变为1.查看维基百科页面以了解常量的含义。

以下是该函数的一些示例值(星星选出您指定的值):

0.0 0 *
0.1 281 *
0.2 107721
0.3 544843
0.4 847472
0.5 955899
0.6 987783 *
0.7 996656
0.8 999087
0.9 999751
1.0 999932 *

或,除以1E6:

0.0 0.00000 *
0.1 0.00028 *
0.2 0.10772
0.3 0.54484
0.4 0.84747
0.5 0.95590
0.6 0.98778 *
0.7 0.99666
0.8 0.99909
0.9 0.99975
1.0 0.99993 *

P.S。如果我混淆了JS,我会感到困惑:我承认我是在Python提示下测试过的,而不是JS。