dA-tools.com

グラフの回転

 
関数で書いたグラフを回転するには以下の式を使います。

  • 例:サイン波とリサージュ波形を回転してみました。
  • 左が元のグラフ、右が回転したグラフです

 x=x*Math.cos(angle)-y*Math.sin(angle)
 y=x*Math.sin(angle)+y*Math.cos(angle) 

    • 回転する角度を angle とする。
    • 回転の中心は座標原点です。
    • 回転角angの単位はラジアンです

sin wave

  • SinWave描画

 ny=a*Math.sin(time*Math.PI) ;
 nx=time;

  • 回転

  ang=degreesToRadians(40);
  x=nx*Math.cos(ang)-ny*Math.sin(ang);
  y=nx*Math.sin(ang)+ny*Math.cos(ang);
  [x, y]

リサージュ

  • リサージュ描画

 nx=Math.cos(Math.PI*2*time);
 ny=Math.sin(Math.PI*2*time*2);

 

  • 回転

  ang=degreesToRadians(-30);
  x=nx*Math.cos(ang)-ny*Math.sin(ang);
  y=nx*Math.sin(ang)+ny*Math.cos(ang);
  [x, y]