forked from: Chaos Game
Nやwtの値を変えると違う模様ができる。
例えば、N=3,wt=0.5のとき、シェルピンスキーの三角形。
ChaosGameは前に作りましたが、今度はBitmapというものをを使ってみた。
/**
* Copyright makc3d ( http://wonderfl.net/user/makc3d )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/eZKF
*/
// forked from takuya1021's Chaos Game
//Nやwtの値を変えると違う模様ができる。
//例えば、N=3,wt=0.5のとき、シェルピンスキーの三角形。
//ChaosGameは前に作りましたが、今度はBitmapというものをを使ってみた。
package {
import flash.display.*;
import flash.filters.*;
import flash.geom.*;
import flash.text.TextField;
//[SWF(width="400",height="400",backgroundColor="#ffffff")]
public class ChaosGame extends Sprite {
private const bf:BlurFilter = new BlurFilter;
private const ct:ColorTransform =
new ColorTransform (0.9, 0.7, 0.5);
private var N:Number = 5;
private var wt:Number = 0.6;
private var bmp_data:BitmapData;
public function ChaosGame() {
// write as3 code here..
bmp_data = new BitmapData( 465, 465, true, 0xFF000000);
var bitmap : Bitmap = new Bitmap(bmp_data);
addChild(bitmap);
addEventListener ("enterFrame", loop);
}
private function loop (e:*):void {
var x:Number = 1;
var y:Number = 0;
N = 3 + 5 * mouseY / 465;
wt = mouseX / 465;
//bmp_data.fillRect (bmp_data.rect, 0xFF000000);
bmp_data.colorTransform (bmp_data.rect, ct);
bmp_data.applyFilter (bmp_data, bmp_data.rect, bmp_data.rect.topLeft, bf);
bmp_data.lock ();
for(var i:int = 0;i<10000/*0*/;i++){
var a:int = Math.random()*N >> 0;
var vx:Number = Math.cos(a*2*Math.PI/N);
var vy:Number = Math.sin(a*2*Math.PI/N);
x = x + (vx - x) * wt;
y = y + (vy - y) * wt;
bmp_data.setPixel((x+1)*456*0.5,(y+1)*465*0.5,0xFFFFFF);
}
bmp_data.unlock ();
}
}
}