math関数を配列に入れてランダムにする

どもども、ごきげんよう。センバクです。
昨日書いた絵です。

https://openprocessing.org/sketch/1780551

先日クリスマスに合わせて作ったクリスマスリースのコード画の、この紙吹雪のようなつぶつぶだけを使って、そのtranslate()を変化させたものが、上の作品です。

共通点があるとは思えないですよね。ほんのちょっとの変更なんですが、ぜんぜん違う作品になっています。おもしろい…!

つぶつぶ部分のコードはこれです。

class Particle {
    constructor(x, y) {
        this.ran = random(width * 0.2) * random(-1, 1)
        this.position = createVector(x, y)
        this.d = width * random(0.005, 0.01)/10;
    }

    display() {
        push();
        let fomulas =[sin,cos,tan,exp,sq,sqrt,floor,fract,round,ceil,abs];

        translate(this.position.x + random(fomulas)(this.ran * random(fomulas)(t)), 
        this.position.y + random(fomulas)(this.ran *random(fomulas)(t/10)));

        poly(0, 0, this.d)
        pop();
    }
}

リースの方ではtranslate()は下記のようになっていましたが、

        translate(this.position.x , this.position.y);

あたらしい絵では以下のようにしました。mathの関数も配列に入れてランダムにできるんだね。

        translate(this.position.x + random(fomulas)(this.ran * random(fomulas)(t)), 
        this.position.y + random(fomulas)(this.ran *random(fomulas)(t/10)));

あとなんか別にclassにする必要なかったかもしれない…。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA