Sierpinski Gasket
package {
import flash.display.Sprite;
import flash.display.*;
import flash.geom.Point;
public class FlashTest extends Sprite {
public function FlashTest() {
// write as3 code here..
var x:uint = Math.random()*100;
var y:uint = Math.random()*100;
var ratio:Number = 2/3;
var num:uint = 6;
var data:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight,false,0x000000)
var verts:Array = genPoly(200,250,200,num);//[0,400,400,400,200,50]
//data.setPixel(x,y,0xFF00FF);
var j:uint = 0;
var rand:uint = 0;
for(j=0;j<100000;j++){
rand = Math.random()*verts.length/2;
x += (-x + verts[2*rand])*ratio;
y += (-y + verts[2*rand+1])*ratio;
if(j>10)
data.setPixel(x,y,0x0000FF);
}
var disp:Bitmap = new Bitmap(data);
addChild(disp)
}
public function genPoly(cx:uint,cy:uint,r:uint,n:uint):Array{
var ret:Array = new Array()
for(var i:uint=0;i<n;i++){
ret.push(r*Math.cos(2*Math.PI/n*(i+.25))+cx)
ret.push(r*Math.sin(2*Math.PI/n*(i+.25))+cy)
}
return(ret)
}
}
}