zoukankan      html  css  js  c++  java
  • [ActionScript 3.0] 绘制扇形方法

     1 /**
     2          * 绘制扇形
     3          * @param    mc 承载扇形的对象
     4          * @param    x 圆心角x
     5          * @param    y 圆心角y
     6          * @param    r 半径
     7          * @param    angle 绘制角度
     8          * @param    startAngle 起始角度
     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         }
  • 相关阅读:
    linux定时器
    TIMESTAMP和DATETIME的区别
    Linux进程或线程绑定到CPU
    C++学习笔记
    磁盘扇区校验和
    docker安装mysql,并配置部分表同步
    docker 安装tomcat
    多tomcat 同一个浏览器 多个项目 会导致session覆盖
    Ubuntu 安装 NodeJS
    Ubuntu 下安装 Arduino IDE
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4642609.html
Copyright © 2011-2022 走看看