ワタタク
今回の記事の目的はProcessingの「noiseSeed()
関数」を理解し、自分なりに使ってみること。
やってみた結果、生え方が決まっている植物を育てるイメージを持ちました。
目次
【Processing】noiseSeed()関数について
noiseSeed()関数について
- 英語で
noise
は「ノイズ」、seed
は「種」という意味- ノイズのパターンを決める「種」を設定するという意味
noiseSeed()
関数は、コンピュータがランダムに見えるパターンを作るときに、そのパターンが毎回同じになるようにしますnoiseSeed()
を使わないと毎回違うパターンが生成されるため、再現性が必要な場合には必ず使うようにします- noiseSeed()を使わないときは「【Processing】noise()関数の使い方【滑らかにランダムな数字を作って表現する】」を使う
【Processing】noiseSeed()関数の書き方【構文】
noiseSeed()関数の書き方【構文】
noiseSeed(整数)
- 主に
noise()
関数と一緒に使う
- 主に
【Processing】noiseSeed()関数の使い方【画像とコード】
【1】ノイズのパターンを決めるのをコンソールで確認する
noiseSeed(100)で、nose(1)のときは、何回実行しても、以下の数値になりました。
// ノイズのパターンを決める数値を100に設定
noiseSeed(100);
// ノイズが1のとき
float n = noise(1);
// ノイズの値を表示
println(n);
【2】noiseSeed()を使って点を決められたパターンで描く
何度実行しても同じ結果になりました。
int numPoints = 1000; // 描く点の数(今回は1000個)
float noiseScale = 0.02; // 点をバラバラに配置するための値(ノイズの細かさ)
void setup() {
size(400, 400); // キャンバスの大きさ(幅400, 高さ400)
background(255); // 背景を白色(255)にする
// ノイズの「たね」を決める
noiseSeed(99); // 99 という数でノイズの形を決める
// 点を描くためのループ(1000回繰り返す)
for (int i = 0; i < numPoints; i++) {
// 点の場所を決める(ノイズを使ってバラバラに配置)
float x = noise(i * noiseScale) * width; // 横の位置を決める
float y = noise((i + 1000) * noiseScale) * height; // 縦の位置を決める
// 点を描く(黒い色の点を置く)
stroke(0); // 点の色を黒色にする
point(x, y); // x, y の位置に点を描く
}
}
void draw() {
// このプログラムでは、setup() で全部描いちゃうので draw() は使わない
}
【Processing】noiseSeed()関数はどんな表現で使えそうか
点・線・図形などの表現で、再現性のあるnoiseを使いたいときに使います。
【Processing】noiseSeed()関数を使ってみた感想
再現性があるのは助かります。
noiseだとどんな結果が出てくるのか分からず、前のがいいなって思っても同じような結果にするのが難しいですから。
noiseの使い始めは、noiseSeed()
関数を使うことが多くなりそうです。
それでは今日もレッツワクワクコーディング。