3

ページの読み込み時に値まで高速カウントするための jQuery プラグインを作成しています。javascript は、より大きな数に対して必要な速度で実行できないため、指定された時間枠内で完了するようにインクリメント ステップを増やしたいので、origo を通過し、ターニング ポイントを持つ 2 次関数が必要です。 y = ターゲット カウント値および x = ターゲット期間ですが、これを行うための数学を把握できません。数と期間の両方が変更される可能性があるため、JavaScript でも計算できる必要があります。

うまくいけば、誰かがこれで私を助けてくれるでしょう!

4

2 に答える 2

3

ステートメントを少し形式化しましょう。

次の形式の方程式を求めます

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

ここで、x は時間軸、y はカウント軸です。曲線上の 1 つのポイントが (0,0) であり、別のポイントが (xf, yf) であることがわかっています。ここで、xf は最終時間、yf はターゲット カウントです。さらに、この方程式の導関数が (xf, yf) でゼロになることを望みます。

y' = 2*a*x + b

したがって、3 つの方程式と 3 つの未知数があります。

(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 に答える