flash on 2017-1-25

by mutantleg
♥0 | Line 71 | Modified 2017-01-25 07:39:11 | MIT License
play

ActionScript3 source code

/**
 * Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/OC1j
 */

package {
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            
            vecVert = new Vector.<xVert>(0,false);
            var i:int; var a:xVert;
            var ta:Number; var d:Number;
            for(i=0;i<64;i+=1)
            {
                ta = Math.random()*6.28;
                d = Math.random()*256;
              a = new xVert(); 
              a.cx = 230+Math.cos(ta)*d;
              a.cy = 230+Math.sin(ta)*d;
              vecVert.push(a);
            }//nexti
            
            cx = vecVert[0].cx;
            cy = vecVert[0].cy;
            
            vecLine = new Vector.<xVert>(0,false);
            
            stage.addEventListener(Event.ENTER_FRAME, onEnter);
        }//ctor
        
        public var cx:Number = 0;
        public var cy:Number = 0;
       
        public var vecVert:Vector.<xVert>;
        public var vecLine:Vector.<xVert>;

        public function getMag(ax:Number,ay:Number):Number
        { return Math.sqrt(ax*ax+ay*ay); }
        
        public function onEnter(e:Event):void
        {
            graphics.clear();
            graphics.lineStyle(2,0);
            
            var mag:Number;
            var d:Number; var ret:xVert;
            var i:int; var num:int; var a:xVert;
            var k:int;
            num = vecVert.length;
            ret=null;
            mag=999;
            k=-1;
            for(i=0;i<num;i+=1)
            {
              a = vecVert[i];
              graphics.drawCircle(a.cx,a.cy,4);  

              d = getMag(cx-a.cx,cy-a.cy);
              if (d>mag){continue;}
               mag = d; ret = a;              
               k=i;
            }//nexti
            
            if (k>=0)
            {
             vecVert[k] = vecVert[num-1];
             vecVert.pop(); 
             vecLine.push(ret);
              cx=ret.cx; cy=ret.cy;   
            }//endif
            
            num = vecLine.length;
            for (i=0;i<num;i+=1)
            {
              a = vecLine[i];
              if (i==0){ graphics.moveTo(a.cx,a.cy); }
              graphics.lineTo(a.cx,a.cy);   
            }//nexti
            
            
            
        }//onenter
        
        
    }//classend
}

internal class xVert
{
  public var cx:Number = 0;
  public var cy:Number = 0;
     
}//xvert