perlinNoise jellyfish

by greentec forked from forked from: perlinNoise play 3 (diff: 14)
perlinNoiseの色を位置情報に置き換えてみたらどうなるか試してみた
…だけ
♥0 | Line 36 | Modified 2011-02-08 10:57:43 | MIT License
play

ActionScript3 source code

/**
 * Copyright greentec ( http://wonderfl.net/user/greentec )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/bwG3
 */

// forked from greentec's forked from: perlinNoise play 3
// forked from Kay's perlinNoise play 3
// forked from Kay's perlinNoise play
/*
 * perlinNoiseの色を位置情報に置き換えてみたらどうなるか試してみた
 * …だけ
 */
package {
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.geom.Point;
    import flash.geom.Rectangle;
    import flash.filters.BlurFilter;
    import flash.events.Event;
    public class FlashTest extends Sprite {
        private var offsets:Array = [new Point(), new Point()];
        private var rect:Rectangle = new Rectangle(0,0,460,460);
        public function FlashTest() {
            var noise:BitmapData = new BitmapData(128,128);
            var canvas:BitmapData = new BitmapData(460,460,false,0xff000000);
            var bm:Bitmap = new Bitmap(canvas);
            var blurFilter:BlurFilter=new BlurFilter(1,1,1);
            addChild(bm);
            addEventListener(Event.ENTER_FRAME, function (e:Event):void {
                /*if(Math.random()<0.5)
                {
                    canvas.applyFilter(canvas,rect,new Point(),blurFilter);
                }
                else
                {*/
                    canvas.fillRect(rect,0);
                //}
                offsets[0].offset(1,1);
                offsets[1].offset(-1,-1);
                noise.perlinNoise(64,64,2,1,true,true,7,false,offsets);
                for (var i:int = 0; i < 16384; i++) {
                    var nX:Number = i/128; 
                    var nY:Number = i%128;
                    var stx_:Number=stage.stageWidth/2;
                    var sty_:Number=stage.stageHeight/2;
                    var rgb:int = noise.getPixel(nX,nY);
                    //var nR:int = (rgb >> 16) & 0xff;
                    var nG:int = (rgb >> 8) & 0xff;
                    var nB:int = rgb & 0xff;
                    //var yratio:Number=sty_/128*2;
//                    canvas.setPixel(stx_+Math.cos(nG/0xff*180/Math.PI)*nX*2,sty_+Math.sin(nB/0xff*180/Math.PI)*2*nY,rgb);
                    canvas.setPixel(stx_+Math.cos(nG/0xff*180/Math.PI)*nX,sty_/2+nY*2,rgb);
                }
            });
        }
    }
}