パーティクル
really nice.. good to see how the code evolved..
particlessetpixel32depthbeautiful noise
:)
Worm Study04 forked from: Worm Study04
- // forked from fladdict's Worm Study04
- // forked from fladdict's Worm Study03
- // forked from fladdict's Worm Study02
- // forked from fladdict's Worm Study01
- // forked from fladdict's code on 2008-12-17
- // write as3 code here..
- // Study for color generation.
- package{
- import flash.display.*
- import flash.events.*
- import flash.geom.*
- public class Sketch02 extends Sprite
- {
- public var bm:Bitmap;
- public var bmd:BitmapData;
- public var particles:Array;
- public var numParticles:int = 100;
- public function Sketch02():void
- {
- bmd = new BitmapData(stage.stageWidth,stage.stageHeight, false, 0x000000);
- bm = new Bitmap(bmd);
- addChild(bm);
- particles = [];
- for(var i:int=0; i<numParticles; i++)
- {
- var prt:Object = createParticle();
- particles.push(prt);
- }
- stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
- }
- public function enterFrameHandler(e:Event):void
- {
- var n:int = particles.length;
- for(var i:int=0; i<n; i++)
- {
- var prt:Object = particles[i];
- prt.dv += Math.random()*0.03-0.015;
- prt.direction += prt.dv;
- prt.x += Math.cos(prt.direction) * prt.v;
- prt.y += Math.sin(prt.direction) * prt.v;
- if(prt.x < 0 ){
- prt.x = stage.stageWidth;
- }else if(prt.x > stage.stageWidth){
- prt.x = 0;
- }
- if(prt.y < 0 ){
- prt.y = stage.stageHeight;
- }else if(prt.y > stage.stageHeight){
- prt.y = 0;
- }
- //
- //Add randomness to color
- //
- prt.rad += prt.radV;
- var r:Number = prt.red * ((1+Math.cos(prt.rad))*0.5);
- var g:Number = prt.green * ((1+Math.cos(prt.rad))*0.5);
- var b:Number = prt.blue * ((1+Math.cos(prt.rad))*0.5);
- r = Math.round(Math.min(255, Math.max(0,r)));
- g = Math.round(Math.min(255, Math.max(0,g)));
- b = Math.round(Math.min(255, Math.max(0,b)));
- var col:Number = r<<16 | g<<8 | b;
- bmd.setPixel(prt.x, prt.y, col);
- }
- }
- protected function createParticle():Object
- {
- var obj:Object = {};
- //moving setting
- obj.x = stage.stageWidth * 0.5;
- obj.y = stage.stageHeight * 0.5;
- obj.v = 0.4 + Math.random()*0.5;
- obj.direction = Math.random()*Math.PI*2;
- //color setting
- obj.red = Math.random()*255;
- obj.green = Math.random()*obj.red;
- obj.blue = Math.random()*obj.red;
- //oscilator setting
- obj.rad = Math.random()*Math.PI*2;
- obj.radV = 0.1;
- obj.color = getColor();
- obj.dv = (Math.random()-0.5) * 0.03;
- return obj;
- }
- protected function getColor():int
- {
- var r:int = Math.random()*255;
- var g:int = Math.random()*r*0.5 + r*0.5;
- var b:int = Math.random()*g*0.5 + r*0.5;
- return r<<16 | g<<16 | b;
- }
- protected function normRand():Number
- {
- return (Math.random()+Math.random()+Math.random()+Math.random()+Math.random())/5 - 0.5;
- }
- }
- }
Worm Study04 forked from: Worm Study04
- // forked from fladdict's Worm Study04
- // forked from fladdict's Worm Study03
- // forked from fladdict's Worm Study02
- // forked from fladdict's Worm Study01
- // forked from fladdict's code on 2008-12-17
- // write as3 code here..
- // Study for color generation.
- package{
- import flash.display.*
- import flash.events.*
- import flash.geom.*
- public class Sketch02 extends Sprite
- {
- public var bm:Bitmap;
- public var bmd:BitmapData;
- public var particles:Array;
- public var numParticles:int = 100;
- public function Sketch02():void
- {
- bmd = new BitmapData(stage.stageWidth,stage.stageHeight, false, 0x000000);
- bm = new Bitmap(bmd);
- addChild(bm);
- particles = [];
- for(var i:int=0; i<numParticles; i++)
- {
- var prt:Object = createParticle();
- particles.push(prt);
- }
- stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
- }
- public function enterFrameHandler(e:Event):void
- {
- var n:int = particles.length;
- for(var i:int=0; i<n; i++)
- {
- var prt:Object = particles[i];
- prt.dv += Math.random()*0.03-0.015;
- prt.direction += prt.dv;
- prt.x += Math.cos(prt.direction) * prt.v;
- prt.y += Math.sin(prt.direction) * prt.v;
- if(prt.x < 0 ){
- prt.x = stage.stageWidth;
- }else if(prt.x > stage.stageWidth){
- prt.x = 0;
- }
- if(prt.y < 0 ){
- prt.y = stage.stageHeight;
- }else if(prt.y > stage.stageHeight){
- prt.y = 0;
- }
- //
- //Add randomness to color
- //
- prt.rad += prt.radV;
- var r:Number = prt.red * ((1+Math.cos(prt.rad))*0.5);
- var g:Number = prt.green * ((1+Math.cos(prt.rad))*0.5);
- var b:Number = prt.blue * ((1+Math.cos(prt.rad))*0.5);
- r = Math.round(Math.min(255, Math.max(0,r)));
- g = Math.round(Math.min(255, Math.max(0,g)));
- b = Math.round(Math.min(255, Math.max(0,b)));
- var col:Number = r<<16 | g<<8 | b;
- bmd.setPixel(prt.x, prt.y, col);
- }
- }
- protected function createParticle():Object
- {
- var obj:Object = {};
- //moving setting
- obj.x = stage.stageWidth * 0.8;
- obj.y = stage.stageHeight * 0.5;
- obj.v = 0.4 + Math.random()*0.5;
- obj.direction = Math.random()*Math.PI*2;
- //color setting
- obj.red = Math.random()*255;
- obj.green = Math.random()*obj.red;
- obj.blue = Math.random()*obj.red;
- //oscilator setting
- obj.rad = Math.random()*Math.PI*2;
- obj.radV = 0.1;
- obj.color = getColor();
- obj.dv = (Math.random()-0.5) * 0.03;
- return obj;
- }
- protected function getColor():int
- {
- var r:int = Math.random()*255;
- var g:int = Math.random()*r*0.5 + r*0.5;
- var b:int = Math.random()*g*0.5 + r*0.5;
- return r<<16 | g<<16 | b;
- }
- protected function normRand():Number
- {
- return (Math.random()+Math.random()+Math.random()+Math.random()+Math.random())/5 - 0.5;
- }
- }
- }
Worm Study04 forked from: Worm Study04
- // forked from fladdict's Worm Study04
- // forked from fladdict's Worm Study03
- // forked from fladdict's Worm Study02
- // forked from fladdict's Worm Study01
- // forked from fladdict's code on 2008-12-17
- // write as3 code here..
- // Study for color generation.
- package {
- import flash.display.*
- import flash.events.*
- import flash.geom.*
- import flash.filters.BlurFilter;
- public class Sketch04_forked extends Sprite
- {
- public function Sketch04_forked():void {
- var bmd:BitmapData = new BitmapData( stage.stageWidth, stage.stageHeight, false, 0xffffff );
- var particles:Array = [];
- var cnt:Number = 0;
- addChild( new Bitmap(bmd) );
- for( var i: int = 0; i < 400; ++ i )
- particles.push( {
- x: stage.stageWidth * 0.5
- ,y: stage.stageHeight * 0.5
- ,v: 0.6 + Math.random() * 0.5
- ,direction: Math.random() * Math.PI * 2
- ,color: 0xffffff * Math.random()
- ,dv: ( Math.random() - 0.5 ) * 0.03
- ,tick: function():void {
- with( this )
- direction += dv += Math.random() * 0.03 - 0.015
- ,bmd.setPixel(
- ( x += Math.cos( direction ) * v ) % stage.stageWidth
- ,( y += Math.sin( direction ) * v ) % stage.stageHeight
- ,color )
- }
- } )
- stage.addEventListener( Event.ENTER_FRAME, function( e:Event ):void {
- for( var i:String in particles ) particles[i].tick();
- ++cnt % 6 || bmd.applyFilter(bmd, bmd.rect, new Point(0, 0), new BlurFilter(2, 2, 1) );
- } )
- } // public function Sketch04_forked
- } // public class Sketch04_forked
- } // package
notice: 

