Tonyu基礎練習 - 練習:数学基礎知識とゲームへの活用 - 三角関数(sin,cos)の応用 - 円形の描画方法

オブジェクトを、このようなだ円形に沿って動かすには、次のようなプログラムを使います。

ellipse.png

 (100,100)を中心とし、半径40の円形(1フレームごとに角度を1増やした場合)

  
while(1){
  x=100+40*cos(angle);
  y=100+40*sin(angle);
  angle+=1;
  update();
}

 (100,150)を中心とし、半径60の円形(1フレームごとに角度を3増やした場合)}

  
while(1){
  x=100+60*cos(angle);
  y=150+60*sin(angle);
  angle+=3;
  update();
}

 (200,200)を座標の中心とし、長径40短径20の楕円。(1フレームごとに角度を10増やした場合)

  
while(1){
  x=100+80*cos(angle);
  y=100+40*sin(angle);
  angle+=10;
  update();
}

 (300,300)を座標の中心とし、長径120短径80の楕円に扁平率を用いた場合。(1フレームごとに角度を10増やした場合)

  
r=1/4;
while(1){
  x=300+120*r*cos(angle);
  y=300+80*r*sin(angle);
  angle+=10;
  update();
}

(Rはメソッドの引数もしくはコンストラクターに渡すときに設定してあげると、「敵や弾などを同じ周期でありながら異なる大きさで描写させる時」などに有用です)