flash on 2015-7-4

by mutantleg
♥0 | Line 53 | Modified 2015-07-04 01:05:54 | 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/p6Vl
 */

package {

    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            
            graphics.lineStyle(2, 0);
            
            var vec:Vector.<xPnt>;
            vec = new Vector.<xPnt>(0,false);
            var i:int; var a:xPnt;
            for (i =0; i < 16; i++)
            {
               a = new xPnt();
                a.cx = Math.random()*400+30;
                a.cy = Math.random()*400+30;
               vec.push(a);
               graphics.drawCircle(a.cx,a.cy, 8);
            }//nexti

            var ax:Number; var ay:Number;
            var num:int;
            var k:int;
            
            ax = 60; ay = 60;

            num = vec.length;

            for (k = 0; k<num;k++)
            {              
                var ret:xPnt;
                var d:Number;  var m:Number;
                ret = null;
                m = 4096;
                for (i =0;i<num;i++)
                {
                    a = vec[i];
                    if (a.check > 0) { continue; }
                    d = getDist(ax-a.cx, ay-a.cy);
                    if (d > m) { continue; }
                    m = d;  ret = a;                 
                }//nexti
                if (ret == null) { break; }
                a = ret;
                a.check = 1;
                graphics.moveTo(ax,ay);
                graphics.lineTo(a.cx,a.cy);
                ax = a.cx; ay = a.cy;
                
            }//nextk
            
        }//ctor
        
        public function getDist(ax:Number, ay:Number):Number
        { return Math.sqrt(ax*ax+ay*ay); }
        
        
    }//classend
}

internal class xPnt
{
    public var cx:Number = 0;
    public var cy:Number = 0;
    
    public var check:int = 0;
    
}//xpnt