画圆算法

package  {
    import flash.display.MovieClip;
    import flash.display.Graphics;
    import flash.geom.Point;
    
    public class Cirle extends MovieClip{
    /**
    *定义圆心(x0,y0),半径为r
    */
    public function OnMidpontcircle(g:Graphics,x0:int,y0:int,r:int):void 
    {

       // TODO: Add your command handler code here

        g.beginFill(0xff0000);
      
        var x:int;
        var y:int;
        var d:int;

           x=0;y=r;d=1-r;
        //setPixel(x,y,color);
        setPixel(x,y);
           while(x<=y)
           {
              if(d<0) {
                  d+=2*x+3;
              }else {
                  d+=2*(x-y)+5;y--;
              }
              x++;
              setPixel(x+x0,y+y0);
              setPixel(-x+x0,y+y0);
              setPixel(-x+x0,-y+y0);
              setPixel(x+x0,-y+y0);
              setPixel(y+x0,x+y0);
              setPixel(-y+x0,x+y0);
              setPixel(-y+x0,-x+y0);
              setPixel(y+x0,-x+y0);
       }
       g.endFill();
    }
    public function Cirle() 
    {
        // constructor code
        OnMidpontcircle(graphics,100,100,100);//10-40
            
        //graphics.beginFill(0xff0000,0.01);
        graphics.lineStyle(1,0x00ff00);
        graphics.drawRect(0,0,200,200);
        graphics.endFill();
    }
        
    private function setPixel(x:int,y:int):void
    {
        graphics.drawRect(x,y,1,1);
    }
}

}

 

posted @ 2016-11-08 21:06  泥潭里的金鱼  阅读(329)  评论(0编辑  收藏  举报