【Processing】random()関数【指定した範囲内でランダムな数を生成し、それを使って表現する】

【Processing】random()関数【指定した範囲内でランダムな数を生成し、それを使って表現する】
  • URLをコピーしました!

今回のrandom()関数の記事を読み終えた後に、以下のrandomSeed()の記事を読むと、さらにランダムを使いこなせるようになります。

【Processing】randomSeed()関数の使い方【毎回同じ順番で、決まった乱数の数を出てくるようにできる】

ワタタク

今回の記事の目的はProcessingの「random()関数」を理解し、自分なりに使ってみること。

この記事を書いた人

ワタタク(Watataku)
  • クリエイティブコーダー / アーティスト
  • 「人の心に寄り添う、機能するアート」を探究しています
  • アートとテクノロジーが、社会や個人のウェルビーイングにどう貢献できるかに、関心があります

記事内のProcessingのバージョンは4.3。

動きのある画像は、コードではなく、GIF画像編集で無限再生されるようにしています。

目次

【Processing】random()関数について

random()関数について
  • random は英語で「ランダム」という意味
  • random() 関数は、0から指定した数の間でランダムな数を返します。
    • じ引きやサイコロを振るときのように、何が出るか分からない状態を指します
    • 例えば、random(10) と書くと、0から10の間のランダムな数を表示してくれる
  • 【注意点1】主にfloat(浮動小数点)で使う
  • 【注意点2】プログラムの動きが予測できなくなる
    • メリットでもあるがデメリットでもある

【Processing】random()関数の書き方【構文】

random()関数の書き方【構文】
  • random(50);
    • 0から50未満の数値の中でランダムな表現ができる
  • random(30, 70);
    • 30から始まり、70未満の数値の中でランダムな表現ができる

【Processing】random()関数の使い方【画像とコード】

【1】背景色をランダムに変えてみる

クリックすると画像が出てきます。

チカチカして眩しいので見るときは注意。

再びこの部分を左クリックかタップで閉じることができます。

赤と緑と青がランダムに変わるようにしている背景の画像
【1】背景色をランダムに変えてみる
// 背景色をランダムに変える
void setup() {
  size(400, 400);
}

void draw() {
  background(random(255), random(255), random(255));
}

輪郭線の太さと円の中の色をランダムに変える

輪郭線の太さと円の中の色をランダムに変える

実行する度に輪郭線と、円の中の色が変わります。

size(400, 400);
background(255);
strokeWeight(random(255));
fill(random(255), random(255), random(255));
ellipse(200, 200, 200, 200);

ランダムな位置と色で線を描く

ランダムな位置と色で線を描く

stroke(random(100, 255), 0, 0);

でrandomを(100, 255)にしてるのは黒色がランダムで表示されないようにしているため。

random(255)だと0~255から色がランダムで表示され、低い数値だと黒っぽくなってしまう。

実行する度に線の位置と色が変わります。

// ウィンドウのサイズを設定する
size(400, 400);
// 背景を白色にする
background(255);

// ランダムな太さで線を描く
strokeWeight(random(1, 10));
// 赤色のランダムな明るさで線を引く
stroke(random(100, 255), 0, 0);
// ランダムな位置に線を引く
line(random(0, 400), random(0, 400), random(0, 400), random(0, 400));

// 別の太さで線を描く
strokeWeight(random(20, 30));
// 緑色のランダムな明るさで線を引く
stroke(0, random(100, 255), 0);
// ランダムな位置に線を引く
line(random(0, 400), random(0, 400), random(0, 400), random(0, 400));

// さらに太い線を描く
strokeWeight(random(30, 40));
// 青色のランダムな明るさで線を引く
stroke(0, 0, random(100, 255));
// ランダムな位置に線を引く
line(random(0, 400), random(0, 400), random(0, 400), random(0, 400));

【Processing】random()関数はどんな表現で使っていこうと思ったか

ランダムに色が変わる作品をつくるってのが現段階のアイデア。

ランダムを使っていろいろ表示させて、自分にはないアイデアを得るって使い方もあり。

【Processing】random()関数を使ってみた感想

面白い。

コンピューターだからこその表現ができる。

作品づくりの段階に入ったら、random()をたくさん使いそう。

ワタタク

それでは今日もレッツワクワクコーディング。

ワタタク(Watataku)
クリエイティブコーダー/アーティスト
AIと共に、「人の心に寄り添う、機能するアート」を探究しています。

ここは、その思索と創造の全記録を記す、思考の実験室(アトリエ)です。

僕の創作の源泉は、人生経験そのものです。
不当な出来事や、精神的な支配の中で、私の心は何度も粉々に砕け散りました。しかし、その一つ一つの破片をどのようにすれば鮮やかな絵の具にできるかを考え、ゆっくり心のパレットに色を整えていきました。その、長い、長い、自身との対話の果てに「人の役に立つアートを作りたい」という考え方にたどり着きました。

かつて、僕の武器は、アコースティックギター弾き語りと、カメラでした。
オリジナルソングの演奏でお客様投票1位となった「物語の力」。
世界20カ国の旅で培った、多様な「視点」。

今、僕は、それら全ての経験を、「コード」という、新しい言語で、世界に問いかけています。

このブログでは、作品の制作過程や、日々の発見、そして、僕自身の上達の軌跡を記録していきます。

僕の旅が、あなたの日常を、ほんの少しでも豊かにするための、光になることを願って。

クリエイティブコーディングロード運営者 ワタタク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次