3

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

希望有人可以帮助我解决这个问题!

4

2 回答 2

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

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

于 2012-12-14T13:43:04.480 回答
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;
    };
};
于 2012-12-14T14:14:29.257 回答