逐渐为动画更改值

时间:2013-02-15 01:54:30

标签: javascript math animation

假设我有一个变量dimension,我想将其从值a更改为值bab是整数,第一个是主要的而不是第二个。

为了线性地这样做,我应该这样做:

while (dimension < a)
dimension = dimension + 1

但如果我希望它以指数方式增长呢?我完全厌倦了数学,我无法弄清楚这一点。我在努力:

while (dimension < a)
dimension = dimension * dimension

关键是价值几乎立即失控,它变得巨大(大于a的方式)

即使我尝试使用大规模(通过将a设置为巨大的值),我也无法完成此任务......但似乎these guys做到了,我认为它也应该很容易!

他们也设法对各种各样的疯狂方程做同样的事情,如果我只能实现一个,那么对我来说很容易!

我只想让一个值从1增加到2但逐渐增加......

希望有人能提供帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

一种非常简单的方法是让第二个计数器在每次迭代时递增一个较小的量,并将其乘以原始计数器来设置它。示例,在您的情况下:

step = 1.2;

while(dimension < a) {
    dimension = Math.max(dimension * step, a);
    step += 0.1;
}

为了达到预期的效果,可能需要调整这些值,但这就是它的一般概念。 对Math.max的调用将确保该值永远不会超过您的目标。