flash on 2017-1-25
♥0 |
Line 71 |
Modified 2017-01-25 07:39:11 |
MIT License
archived:2017-03-20 16:21:04
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