ジェネラティブな墨絵?(2020.05.14)

はじめに

 ジェネラティブアートが使われている分野としては、 音楽プレイヤーの再生時の映像やスクリーンセーバーなどがあります。

一般的にこれらに使われるジェネラティブアートはカラフルで、 ちょっぴりサイバーなイメージのものが多いと感じています。

 ジェネラティブアートにはそんなイメージがあるので、 それらとは異なる、強いていえば動く墨絵のような作品を作りたいと 考えていました。

この作品の元ネタは、しばらく前から考えていたように思いますが、 あれこれと修正しているうちにできたのがこの日の作品でした:

 なお、この作品は 2020 年 4 月 1 日から 5 月 14 日にかけて開催された、 #dailycodingchallenge の 5 月 14 日(最終日)のお題「輪」についての作品でもあります。

ソースコードおよび解説

 この作品は つぶやき Processing できた作品なので、 ツィート中にソースコードが全て存在していますが、 読みづらいので以下に清書版を載せておきます:

def setup():size(500,500)
def draw():
    # 10 フレームに 1 回、フェードアウト処理
    if frameCount%10!=0:
        fill(-1,10)
        circle(0,0,2000)
        return

    # 輪の描画
    fill(0)
    for i in range(300):
        t=radians(i+random(360))
        r=noise(t,frameCount*.01)*100+50
        circle(cos(t)*r+250,sin(t)*r+250,noise(r)*20-t)

 輪の描画部分では、ランダムに角度指定し(角度は変数 t に代入)、 半径は t とフレーム数によりノイズを用いて決定しています。 あとは、

$$ \left\{ \begin{array}{l} x=r\cos(t)+250 \newline y=r\sin(t)+250 \end{array} \right. $$

として、位置 (x,y) に小さな円を描いています。

 墨汁を垂らして、適当に点描する作業を想像し、 コード化してみました。