Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计数递增加速的二次函数_Javascript_Jquery_Math_Quadratic Curve - Fatal编程技术网

Javascript 计数递增加速的二次函数

Javascript 计数递增加速的二次函数,javascript,jquery,math,quadratic-curve,Javascript,Jquery,Math,Quadratic Curve,我正在编写一个jQuery插件,用于在页面加载时快速计算一个值。由于javascript不能像我希望的那样快速运行,所以我想增加增量步骤,使其在给定的时间范围内完成,因此我需要一个二次函数,该函数通过origo,在y=目标计数值和x=目标持续时间处具有转折点,但我无法掌握这样做的数学。因为数字和持续时间都可以改变,所以我需要能够在javascript中计算它 希望有人能帮我做这个 让我们把这句话形式化一点 我们寻求一个方程的形式 y=a*x*x+b*x+c 其中x是时间轴,y是计数轴。我们知道曲

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


希望有人能帮我做这个

让我们把这句话形式化一点

我们寻求一个方程的形式

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

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

我有三个方程和三个未知数:

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

你应该可以从那里解决它

最喜欢的问题:PI非常喜欢这个答案,因为它给了我解决问题的数学知识。不幸的是,我只能选择一个正确的答案,Frederik的答案在如何实现它方面也给了我很多帮助,我真的很感激,因为我对javascript还不是很感兴趣。
// 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;
    };
};
// 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;
    };
};