/** © 2007 by Duncan Holby. www.glyfconstruct.com Protected under the Creative Commons Licence. For non-commerical use only. Feel free to use but please credit. **/ package { import flash.display.Sprite; import flash.events.Event; import flash.display.Graphics; public class Geom40 extends Sprite { private var radius0:uint = 200; private var radius1:uint = 75; private var radius2:uint = 35; private var radius3:uint = 15; private var numDots:uint = 3600; private var halfNumDots:uint = numDots/2; private var loopNumber1:Number = 6; private var loopNumber2:Number = 10; private var loopNumber3:Number = 30; private var angle:Number = 0; private var centerX:Number = 400; private var centerY:Number = 300; private var dots:Array = new Array; private var mousePosX:Number; private var mousePosY:Number; public function Geom40() { init(); } private function init():void { for (var i=0; i<=numDots; i+=2) { dots[i] = new Circle(0,0,0xFFFF66,2); addChild(dots[i]); } for (var j=1; j<=numDots; j+=2) { dots[j] = new Circle(0,0,0xFFFF66,2); addChild(dots[j]); } addEventListener(Event.ENTER_FRAME, onenterFrame); } private function onenterFrame(event:Event):void { //mousePosX = mouseX - 400; loopNumber3 = Math.sin(5+angle/9)*2.5; loopNumber2 = Math.sin(angle/7)*500; angle += .01; loopNumber1 = Math.sin(angle/3)*3; for (var i=0; i<=numDots; i++) { dots[i].x = centerX + Math.sin(i* Math.PI/halfNumDots)*radius0 + Math.tan(loopNumber1*i* Math.PI/halfNumDots)*radius1 + Math.tan(loopNumber2*i* Math.PI/halfNumDots)*radius2 + Math.sin(loopNumber3*i* Math.PI/halfNumDots)*radius3; dots[i].y = centerY + Math.cos(i* Math.PI/halfNumDots)*radius0 + Math.cos(loopNumber1*i* Math.PI/halfNumDots)*radius1 + Math.cos(loopNumber2*i* Math.PI/halfNumDots)*radius2 + Math.cos(loopNumber3*i* Math.PI/halfNumDots)*radius3; } /* for (var j=0; j<=2880; j++) { if (j<2880){ var dx:Number = dots[j].x - dots[j+1].x; var dy:Number = dots[j].y - dots[j+1].y; if (Math.sqrt(dx*dx + dy*dy) > 2) { dots[j].x = 2000; } } } */ } } }