--------------------------------------------------------------------
var n:Number=Math.ceil(Math.abs(angle) / 45);
var angleA:Number=angle / n;
angleA=angleA * Math.PI / 180;
startFrom=startFrom * Math.PI / 180;
-----------------------------------------------------------
private function Line(Event:MouseEvent) {
if (rot) {
_shape.rotation=Math.atan2(stage.mouseY - _shape.y,stage.mouseX - _shape.x) * 180 / Math.PI;
//以下为画弧
var center:Point=new Point(_shape.x,_shape.y);
//圆心
var angle:Number=Math.atan2(stage.mouseY - center.y,stage.mouseX - center.x) * 180 / Math.PI;
//角度
var startFrom:Number=0;
//0度,表示从x正轴为起点开始画弧
var r:Number=Sliding.x + 35;
//半径
angle=Math.abs(angle) > 360?360:angle;
var n:Number=Math.ceil(Math.abs(angle) / 45);
var angleA:Number=angle / n;
angleA=angleA * Math.PI / 180;
startFrom=startFrom * Math.PI / 180;
this.graphics.lineStyle(1,0x000000,1);
this.graphics.moveTo(center.x + r,center.y);
this.graphics.lineTo(center.x + r * Math.cos(startFrom),center.y + r * Math.sin(startFrom));
for (var i=1; i <= n; i++) {
startFrom+= angleA;
var angleMid=startFrom - angleA / 2;
var bx=center.x + r /Math.cos(angleA / 2) * Math.cos(angleMid)
var by=center.y + r / Math.cos(angleA / 2) * Math.sin(angleMid);
var cx=center.x + r * Math.cos(startFrom);
var cy=center.y + r * Math.sin(startFrom);
this.graphics.curveTo(bx,by,cx,cy);
}
} else {
_shape.rotation=0;
}
}
-----------------------------------------
本文来自: 画圆弧的代码范例源代码及图解

