増分値が 0 から無限に与えられた場合、正弦波のように、増加、減少、増加、減少の値を取得したいと思います。
私は基本的に、直線的にのみ増加する入力値に基づいて、上下するボールのアニメーションを取得しようとしています (この値は、たとえばページを 0px から TBD +1 にスクロールすることによって得られます)
どの数学関数を使用すればよいですか?
ありがとう
増分値が 0 から無限に与えられた場合、正弦波のように、増加、減少、増加、減少の値を取得したいと思います。
私は基本的に、直線的にのみ増加する入力値に基づいて、上下するボールのアニメーションを取得しようとしています (この値は、たとえばページを 0px から TBD +1 にスクロールすることによって得られます)
どの数学関数を使用すればよいですか?
ありがとう
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/