2007-02-25 Perlin Noise
■ Perlin Noise

また久しぶりに Processing からの移植ネタなのだ。今回参考にしたのはこのサイト
GHOSTAGENCY: Proce55ing sketchbook by Alessandro Capozzo
の、Perlin ノイズで波を描くやつだ。
Abstractscape: Built with Processing
丸ごとまねだと面白くないので、4枚の半透明の波を重ね合わせるようにしてみた。
package { import flash.display.Sprite; import flash.display.Shape; import flash.events.Event; public class Perlin extends Sprite { private var perlin:PerlinNoise = new PerlinNoise(); private var noiseScale:Number = 0.02; private var n:Number = 0.0; private var d:Number = 0.4; private var a:Array = []; public function Perlin() { for (var j:int = 0; j < 4; ++j) { var s:Shape = new Shape(); s.alpha = 0.1; a[j] = s; addChild(s); } addEventListener(Event.ENTER_FRAME, enterFrame); } private function enterFrame(e:Event):void { n += d; for (var j:int = 0; j < 4; ++j) { var y:int = j * 10; var s:Shape = a[j]; s.graphics.clear(); s.graphics.beginFill(0x0000FF); s.graphics.moveTo(0, 50+100); for (var x:int = 0; x < 300; x++) { var noiseVal:Number = perlin.noise((n+x)*noiseScale, (-n+y)*noiseScale, y*noiseScale); s.graphics.lineTo(x*2, 50+noiseVal*100); } s.graphics.lineTo(640, 50+100); s.graphics.endFill(); } } } }
PerlinNoiseクラスはProcessingの PApplet.java からPerlinノイズ関係だけをパクってきた。実際のソースはデモからダウンロードできるようにしたのでそちらをどうぞ。
デモ
いろいろ試行錯誤したんだけど、PS3のあの波のようにはなかなかできない。
コメントを書く





