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