2013-07-05 29 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

我会更新我的答案并具体说明如何做到这一点。 –