パーリンノイズ勉強 曲線 パーリンノイズを作って、その色の値を使って曲線を描く。 sakef forked:3favorite:12lines:45license : MIT License modified : 2011-01-17 16:53:16 Embed Tweet package { import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.display.Graphics; import flash.display.Sprite; import flash.events.Event; import flash.geom.Point; [SWF(width="465", height="465", backgroundColor="0x000000", frameRate="30")] public class Main extends Sprite { private var bmpd:BitmapData; private var seed:Number; private var offset:Array; public function Main() { bmpd=new BitmapData(500, 100, false, 0xFFFFFF); seed=Math.floor(Math.random() * 10); offset=[new Point(0, 0), new Point(0, 0)]; addEventListener(Event.ENTER_FRAME, onFrame); } private function onFrame(e:Event):void { // パーリンノイズを生成 bmpd.perlinNoise(500, 500, 2, seed, true, true, BitmapDataChannel.RED, false, offset); offset[0].x += 10; offset[1].y += 1; // 曲線を描写 graphics.clear(); drawLine(graphics, 0, bmpd, 0xff0000); drawLine(graphics, 25, bmpd, 0x00ffff); drawLine(graphics, 50, bmpd, 0x00ff00); drawLine(graphics, 75, bmpd, 0x0000ff); drawLine(graphics, 99, bmpd, 0xffff00); } // 曲線を描く関数 private function drawLine(g:Graphics, y:Number, source:BitmapData, color:uint):void { g.lineStyle(1, color); for(var i:int=0 ; i<500 ; i+=20) { if(i==0) g.moveTo(i, (source.getPixel(i,y)>>16)*1.5); else g.lineTo(i,(source.getPixel(i,y)>>16)*1.5); } g.endFill(); } } } Code Fullscreen Preview Fullscreen pure sines would look better by makc3d at 2011/01/18 09:40:37 bradsedito NINECUBE nanlow a24 merrycat kacchan6 Dan0 osamX kleinschmidt.. NKT : perlinNoise OneInchPunch.. : perlinNoise nicoptere : 2Dcurve 2D curve perlinNoise graphics offset source Math.floor addEventListener Point Event.ENTER_FRAME Event Math.random Array uint Sprite int Number sort new page view favorite forked pv107 aura bradsedito forked:0 favorite:0lines:50 (diff:11) pv89 forked from: パーリンノイズ勉強 曲線 romeo141 forked:0 favorite:0lines:45 (diff:1) pv0 forked from: flash on 2011-1-1.. slip327 forked:0 favorite:0lines:45 (diff:1)