我正在寫一個jQuery插件,用於在頁面加載時達到快速計數值。由於JavaScript無法像我想要的那樣以較大的數字運行,因此我想增加遞增步驟以便在給定的時間範圍內完成,因此我需要一個通過origo的二次函數,並且它已經是轉折點在y =目標計數值和x =目標持續時間,但我無法抓住數學這樣做。由於數量和持續時間都可以改變,我需要能夠在JavaScript中計算它。計數的增量加速的二次函數
希望有人能幫助我這個!
我正在寫一個jQuery插件,用於在頁面加載時達到快速計數值。由於JavaScript無法像我想要的那樣以較大的數字運行,因此我想增加遞增步驟以便在給定的時間範圍內完成,因此我需要一個通過origo的二次函數,並且它已經是轉折點在y =目標計數值和x =目標持續時間,但我無法抓住數學這樣做。由於數量和持續時間都可以改變,我需要能夠在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;
};
};
工程就像一個魅力,謝謝! – Mikau
讓我們將這個陳述正式化一下。
我們尋求形式
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
您應該能夠從那裏解決。
我真的很喜歡這個答案,因爲它給了我解決問題的數學方法。不幸的是,我只能選擇一個正確的答案,弗雷德裏克的回答給了我很多幫助,以及如何實現它,我真的很感激,因爲我還沒有那麼熱。 – Mikau
我可以搜索它! –
+1和+最喜歡的問題:P –