ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

二次ベジェ曲線

ActionScriptではcurveTo()メソッドにより曲線を描画することができる。この曲線の公式は二次ベジェ曲線。曲線の開始点を(x0,y0),コントロールポイントを(x1,y1),終了点を(x2,y2)とすると、次のようにして曲線を書くことができる。

graphics.moveTo(x0,y0);
graphics.curveTo(x1,y1,x2,y2);

二次ベジェ曲線で指定するコントロールポイントはカーブする曲線を指定するが、描かれるカーブ自体はコントロールポイントを通らない。
ある点(x,y)を通るような曲線を描きたいときには次のようにしてコントロールポイントを求めれば良い。

x1 = x*2 - (x0+x2)/2;
y1 = y*2 - (y0+y2)/2;

通りたい点に2をかけて、そこから開始点と終了点の平均を引いている。ここから求められるコントロールポイントを指定すれば良い。
実際にテストしたみたのがこちら。
wonderfl build flash online | 面白法人カヤック