public static function oval(g:Graphics, w:Float, h:Float, cx:Float = 0, cy:Float = 0):Graphics {
var lx = cx - w * .5;
var rx = cx + w * .5;
var ty = cy - h * .5;
var by = cy + h * .5;
var magic = 0.551915024494;
var xmagic = magic * w * 0.5;
var ymagic = h * magic * 0.5;
g.moveTo(cx, ty);
g.bezierCurveTo(cx + xmagic, ty, rx, cy - ymagic, rx, cy);
g.bezierCurveTo(rx, cy + ymagic, cx + xmagic, by, cx, by);
g.bezierCurveTo(cx - xmagic, by, lx, cy + ymagic, lx, cy);
g.bezierCurveTo(lx, cy - ymagic, cx - xmagic, ty, cx, ty);
return g;
}
sources
Magic value http://spencermortensen.com/articles/bezier-circle/