dA-tools.com

サイン波 sin wave

三角関数でおなじみのグラフです。
   ※図はAEの画面ですから下がY軸の正方向です。

y = a * sin ( time * k )

    • aは振幅 kは周期
    • このグラフで1秒をちょうど1サイクル(2パイ)にするには

time * Math.PI * 2

    • 周期を変えずに左右にずらす(位相を変える)には

sin( x + c )

 

    • 角度はラジアンを使うので注意が必要です。
    • 円周率パイはJavaScriptのMath.PIを使います。
    • cos(コサイン)のグラフはsinのグラフの位相を90°ずらしたものと同じです。
    • 参考:基礎数学LinkIcon三角関数 : LinkIconラジアン

例:Sin & Cos

  • 「初歩」のところで紹介した動きです。
  • レイヤーの「位置」に次の式を記述しています。

x=Math.cos(time*Math.PI/2)*100;
y=Math.cos(time*Math.PI)*100;
[ position[0]+x , position[1]+y ]

  • レイヤーの「スケール」に次の式

x=Math.sin(time*Math.PI/2)*100;
y=Math.sin(time*Math.PI/2)*100;
[ scale[0]+x , scale[1]+y ]

  • グラフはこうなります。
 
 

バリエーション A

    • sin( )は0を中心に上下に振幅する波です。それの絶対値を取るとこのようなグラフになります。

a=100 ;
y=a*Math.sin(time*Math.PI*2) ;
x=320/4*time;
y= Math.abs(y) ;
[x, y]

バリエーション B

    • sin( )波と特定値の最大値を取るとこのようなグラフになります。
    • max(val1 , val2)は2つの値の大きい方を返します。

a=100;
x=320/4*time;
y=a*Math.sin(time*Math.PI*2);
y=Math.max(y, 0);
[x, y]