2013-07-05 59 views
0

給出增量值從0到無窮 我想找回那種增加值,然後下降,然後上升,然後下降...就像正弦數學與JS:正弦動畫

我基本上是試圖根據僅線性增加的輸入值(通過將頁面滾動到例如從0px到TBD + 1給出)來獲得上下移動的球的動畫

什麼數學函數應該我用?

感謝

回答

1

好,JavaScript has a sine function

var y = Math.sin(Math.PI); // returns 0 

Math.sin()取其弧度的說法。

如果你想「減慢」振盪,你需要做的就是擴展輸入參數:只需將你傳入正弦函數的東西除以某個常量即可。例如,如果x是你的輸入參數,並且希望動畫去一半的速度,這樣做:

var y = Math.sin(x/2); 

而且記住,正弦變負;其範圍是[-1,1]。所以,如果你想避免負值,你就必須加1,函數的輸出:

var speed = 0.5; // 2=2x speed, 0.5=half speed, etc. 
var y = (Math.sin(x * speed) + 1)/2; 
// y will range from [0,1] 

看到這個的jsfiddle一個示範:http://jsfiddle.net/r8yRN/

+0

謝謝!我實際上試過了var ballY = Math.sin(x)* 100;其中x是+1增量,但由於某種原因,球振盪上下,但太快...我忘了所有關於罪和幾何我不記得如何延長頻率... – Francesco

+0

我會更新我的答案並具體說明如何做到這一點。 –