E8 Inspired Forms

This doesn’t have much to do with E8.. but it is vaguely inspired by it…

View the demo… (source code is below)

var hw:Number = stage.stageWidth / 2;
var hh:Number = stage.stageHeight / 2;

var canvas:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight, false, 0x333333);
addChild(new Bitmap(canvas));
var vector:Shape = Shape(addChild(new Shape()));

// contrast
var cm:ColorMatrixFilter = new ColorMatrixFilter([2.6,0,0,0,-101.6,0,2.6,0,0,-101.6,0,0,2.6,0,-101.6,0,0,0,1,0]);
filters = [cm];

var over:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight, false, 0x333333);
var frm:Bitmap = Bitmap(addChild(new Bitmap(over)));

frm.blendMode = BlendMode.OVERLAY;
 
var dotNum:int = 250;
var dotConnected:int = 0;
var curr:int = 0;
var prevConnected:int = -1;
var dots:Vector.<Point> = new Vector.<Point>(dotNum, true);

// consider altering this value manually
var step:Number =  Math.random()*10

var theta:Number = -.5234;
for (var i:int= 0; i < dotNum; i++){
	var r:Number = 280
	theta += step;
	var xp:Number = hw + r  * Math.cos(theta);
	var yp:Number = hh + r * Math.sin(theta);
	dots[i] = new Point(xp, yp);
}

var col:uint = 0xFFFFFF;
var a:Point, b:Point;
var connections:int = 0;

var txt:TextField = TextField(addChild(new TextField()));
txt.defaultTextFormat = new TextFormat("_sans", 12);
txt.textColor = 0x555555, txt.x = 10, txt.y = 10;
txt.autoSize = "left";
txt.text = step.toString();

addEventListener(Event.ENTER_FRAME, onLoop);
function onLoop(evt:Event):void{
	 
	over.applyFilter(canvas, over.rect, new Point(0,0), new BlurFilter(10,10, 1));
	
	for (var i:int = 0; i<100; i++){
		if (dotConnected < dotNum - 1){
			if (prevConnected != dotConnected){
				a = dots[dotConnected];
			}
			prevConnected = dotConnected;
			b = dots[curr];
			curr++;
			
			if (a != b){
				connections++;
				vector.graphics.clear();
				vector.graphics.lineStyle(0,col,0.05);
				vector.graphics.moveTo(a.x, a.y);
				vector.graphics.lineTo(b.x, b.y);
				canvas.draw(vector); 
			}
			if (curr > dotNum - 1){
				curr = 0;
				dotConnected++;
				col =[0,0xFFFFFF][int(Math.random()*2)];
			} 
		}else{
			break;
			trace("done");
			removeEventListener(Event.ENTER_FRAME, onLoop);
		}
	}
}

Leave a Reply

Your email address will not be published. Required fields are marked *