дописал код от
AS3Coder, прооптимизировал чуть-чуть и добавил возможность задавать внутренний радиус
Код AS3:
package utils {
import flash.display.Graphics;
import flash.geom.Point;
public function drawCircleSector(g:Graphics, centerX:Number, centerY:Number, radius:Number, angle:Number, innerRadius:Number = 0):void {
var p:Point, i:uint;
const rad:Number = Math.PI / 180;
const pi2:Number = Math.PI / 2;
g.moveTo(centerX, 0);
for (i=0; i<=angle; ++i) {
p = Point.polar(radius, i * rad - pi2);
g.lineTo(centerX + p.x, centerY + p.y);
}
if (innerRadius != 0 && innerRadius < radius) {
for (i=angle; i>=0; --i) {
p = Point.polar(innerRadius, i * rad - pi2);
g.lineTo(centerX + p.x, centerY + p.y);
}
}
}
}
использовать так:
Код AS3:
import utils.drawCircleSector;
const sh:Shape = new Shape();
sh.graphics.beginFill(0xFFFFFF);
drawCircleSector(sh.graphics, 10, 10, 10, 235, 8);
sh.graphics.endFill();