网络上收集几种画圆及圆环的方法

来源:互联网 发布:哈喽聊天软件 编辑:程序博客网 时间:2024/06/06 07:18

代码1:

this.createEmptyMovieClip("circle2_mc", 2);
circle2_mc.lineStyle(0, 0x000000);
drawCircle(circle2_mc, 100, 100, 100);
function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void {
    mc.moveTo(x+r, y);
    mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.cos(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
    mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
    mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.cos(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
    mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
    mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.cos(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
    mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
    mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.cos(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
    mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
}
 
代码2:
var m:Number = 0;
var n:Number = 0;
var Intervalid:Number;

lineStyle(1);

function drawCircle(x:Number, y:Number, r:Number){
    if(n==0){moveTo(x, y+r);}
    n += Math.PI/180;
    curveTo(x+r*Math.sin(m),y+r*Math.cos(m),x+r*Math.sin(n),y+r*Math.cos(n));
    m = n;
    if(n > 2*Math.PI){clearInterval(Intervalid);}
}

Intervalid = setInterval(this, "drawCircle", 10,200,100,100);
 
代码3:
var angle:Number = 0;
var minR:Number = 30;
var maxR:Number = 50;
var _sprite:MovieClip = this.createEmptyMovieClip("_mc", 0);
function enterFrameHandler() {
    angle += Math.PI/18;
    _sprite.beginFill(0xFF00FF);
    _sprite.lineStyle(1,0xFF00FF,0);
    _sprite.moveTo(200+minR,200);
    for (var v:Number = 0; v<=angle; v += Math.PI/180) {
        _sprite.lineTo(200+minR*Math.cos(v),200+minR*Math.sin(v));
    }
    _sprite.lineTo(200+maxR*Math.cos(angle),200+maxR*Math.sin(angle));
    for (; v>=0; v -= Math.PI/180) {
        _sprite.lineTo(200+maxR*Math.cos(v),200+maxR*Math.sin(v));
    }
    _sprite.lineTo(200+minR,200);
    _sprite.endFill();
    angle>=Math.PI*2 && delete this.onEnterFrame;
}
_sprite.onEnterFrame = enterFrameHandler;
 
代码4:
_root.createEmptyMovieClip("p",1)
var downtime=60;
function timeon(){  //timeon每秒执行一次
    t++;//时间+1;
    j++;//扇形的循环变量+1
    _root.ten=downtime-j
    drawcir(i,i+step1,col[c]);//画圆
    i+=step1;//角度增加
    if (t==timeset){//倒时间后停止
        clearInterval(_root.timer);//停止setInerval
  removeMovieClip("p");
  t=0;
  i=0;
  j=0;
    }
}
function drawcir(st:Number,en:Number,color:Number){
    p.lineStyle(1,0xffffff,0);
    p.beginFill(color,50);
    p.moveTo(sx,sy);
    p.lineTo(sx+r*Math.sin(st),sy-r*Math.cos(st));
    var i = st;
    do{
      i+=step;
      p.lineTo(sx+r*Math.sin(i),sy-r*Math.cos(i));
    }while (i<en);
    p.lineTo(sx,sy);
    p.endFill();
}//画扇形的函数,使用参数方程,st为起始角度,en为末角度,color为颜色
timer = setInterval(timeon,1000);//开始setInterval