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