[ActionScript]curveToで楕円を描く
自分用メモです。
ActionScriptで楕円を描画する際、通常は drawEllipse を使いますが、drawPath や drawGraphicsData を使いたい場合があります。
こうしたとき、curveTo で円や楕円を描画しなければなりません。
中心が(x0, y0), 半径が(w, h)の楕円を curveTo で描画するプログラムは以下のような感じ。
(正円なら、w == h)
// 分割数
var seg:uint = 8;
var angle:Number = Math.PI / seg;
var angle2:Number = angle * 2;
var halfPI:Number = Math.PI / 2;
graphics.moveTo(x0 + w, y0);
for (var i:uint = 1; i < = seg; i++)
{
var r:Number = i * angle2;
// アンカーポイントの座標
var ax:Number = w * Math.cos(r);
var ay:Number = h * Math.sin(r);
// コントロールポイントの座標
var cx:Number = ax + w * Math.tan(angle) * Math.cos(r - halfPI);
var cy:Number = ay + h * Math.tan(angle) * Math.sin(r - halfPI);
// 弧の描画
graphics.curveTo(cx + x0, cy + y0, ax + x0, ay + y0);
}
Filed under: Flash/AIR/Flex, メモ



