0

给定增量值从 0 到无限我想取回一个增加,然后减少,然后增加,然后减少的值......就像一个正弦

我基本上是在尝试根据仅线性增加的输入值来获得上下运动的球的动画(例如,通过将页面滚动到从 0px 到 TBD +1 来给出该值)

我应该使用什么数学函数?

谢谢

4

1 回答 1

1

好吧,JavaScript 有一个正弦函数

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/

于 2013-07-05T16:36:07.953 回答