用于增加加速加速的二次函数

时间:2012-12-14 13:26:19

标签: javascript jquery math quadratic-curve

我正在编写一个jQuery插件,用于在页面加载时快速计算值。由于javascript无法像我想要的那样快速运行更大的数字,我想增加增量步骤以便它在给定的时间范围内完成,所以我需要一个通过origo的二次函数并且它具有转折点在y =目标计数值和x =目标持续时间,但我无法掌握这样做的数学。由于数量和持续时间都可以改变,我需要能够在javascript中计算它。

希望有人可以帮我这个!

2 个答案:

答案 0 :(得分:3)

让我们稍微说明一下这句话。

我们寻求形式的等式

y = a*x*x + b*x + c

其中x是时间轴,y是计数轴。我们知道曲线上的一个点是(0,0),另一个点是(xf,yf),其中xf是最终时间,yf是目标计数。此外,您希望此公式的导数在(xf,yf)处为零。

y' = 2*a*x + b

所以我有三个方程式和三个未知数:

(0,0) => 0 = c
(xf, yf) => yf = a*xf*xf + b*xf + c
y' = 0 @ (xf, yf) => 0 = 2*a*xf + b

你应该能够从那里解决它。

答案 1 :(得分:2)

// Create a quadratic function that passes through origo and has a given extremum.
// x and y are the coordinates for the extremum.
// Returns a function that takes a number and returns a number.
var quadratic = function (x, y) {
    var a = - (y / (x * x));
    var b = (2 * y) / x;
    return function (x) {
        return a * x * x + b * x;
    };
};