The Nature of Code(PDF版)から2次元ノイズについて取り上げます。乱数を2次元に割り当てて、画像を作ります。Processingでプログラムを書いて、動作を確認します。動作を確認できるところがProcessingの楽しいところです。
パーリンノイズ
パーリンノイズによる2次元ノイズを見ていきます。
//2D Perlin noise void setup(){ size(640, 180); } void draw(){ loadPixels(); float xoff = 0.0; for (int x = 0; x < width; x++) { float yoff = 0.0; for (int y = 0; y < height; y++) { float bright = map(noise(xoff,yoff),0,1,0,255); pixels[x+y*width] = color(bright); yoff += 0.01; } xoff += 0.01; } updatePixels(); noLoop(); }
- メモ
ランダムノイズ
ランダム関数によるノイズは、以下のようになります。
//ランダムノイズ void setup(){ size(640, 180); } void draw(){ loadPixels(); for(int x = 0; x < width; x++){ for(int y = 0; y < height; y++){ float gs = random(255); pixels[y*width+x] = color(gs); } } updatePixels(); noLoop(); }
砂嵐のような画像になりました。
- メモ
- color(int型の値);
- デフォルトでは0~255までのRGB値
- color(int型の値);
まとめ
The Nature of Code(PDF版)から2次元ノイズについて取り上げました。乱数の違いにより、生成される画像に異なる特徴が現れました。引き続き、The Nature of Code(PDF版)の内容を勉強します。