标签:
1 /** 2 * 绘制扇形 3 * @param mc 承载扇形的对象 4 * @param x 圆心角x 5 * @param y 圆心角y 6 * @param r 半径 7 * @param angle 绘制角度 8 * @param startFrom 起始角度 9 * @param color 填充颜色 10 * @param hasFrame 是否填充边框 11 */ 12 private function drawSector(sp:Sprite,x:Number=0,y:Number=0,r:Number=100,angle:Number=60,startAngle:Number=0,color:Number=0xff0000,hasFrame:Boolean=true):void { 13 sp.graphics.clear(); 14 if(hasFrame) { 15 sp.graphics.lineStyle(0,0xffff00); 16 } 17 sp.graphics.beginFill(color,1); 18 sp.graphics.moveTo(x,y); 19 angle=(Math.abs(angle)>360)?360:angle; 20 var n:Number=Math.ceil(Math.abs(angle)/45); 21 var angleA:Number=angle/n; 22 angleA=angleA*Math.PI/180; 23 startAngle=startAngle*Math.PI/180; 24 sp.graphics.lineTo(x+r*Math.cos(startAngle),y+r*Math.sin(startAngle)); 25 for (var i:int=1; i<=n; i++) { 26 startAngle+=angleA; 27 var angleMid:Number=startAngle-angleA/2; 28 var bx:Number=x+r/Math.cos(angleA/2)*Math.cos(angleMid); 29 var by:Number=y+r/Math.cos(angleA/2)*Math.sin(angleMid); 30 var cx:Number=x+r*Math.cos(startAngle); 31 var cy:Number=y+r*Math.sin(startAngle); 32 sp.graphics.curveTo(bx,by,cx,cy); 33 } 34 if (angle!=360) { 35 sp.graphics.lineTo(x,y); 36 } 37 sp.graphics.endFill(); 38 }
标签:
原文地址:http://www.cnblogs.com/frost-yen/p/4642609.html