周期的ノイズのアニメーション(2020.06.11)

はじめに

 このページでは、以下の作品のプログラムリストを紹介します:

 いい感じに歪んだ円=閉曲線を描こうとする場合、 ノイズを用いて半径を決め、角度を変えつつ描画しようと思いつきます。

しかし、Processing のノイズ関数は、 360 度や 2π (ラジアン)での周期的なノイズではないため、 ぐるりと角度 θ を一周させても、θ=0 と θ=2π のときに、 半径の値が異なってしまいます。

つまり、このような単純に noise 関数を使うだけでは、 滑らかな閉曲線は得られません。

そこで必要となるのが周期的なノイズ関数ということになるのですが、 詳しい説明は 周期的ノイズについて をみて下さい。

ソースコード

def setup():
    size(500,500)
    stroke(-1)
def D(s,f,c,a,b):
    w=r=s*noise(cos(f)+1,sin(f)+2,c)+s
    x=r+a; y=b
    for i in range(72):
        t=radians(i*5)
        r=s*noise(cos(t+f)+1,sin(t+f)+2,c)+s
        u=r*cos(t)+a; v=r*sin(t)+b
        line(x,y,u,v)
        x,y=u,v
    line(x,y,w+a,b)

def draw():
    clear()
    f=frameCount*.02
    for i in range(40):
        D(10+i*9,f,i*.3+f,100,150-3*i)

 本作は、個人的には気に入っている作品なのですが、 これだけ文字数が多いとなかなか つぶやき Processing はできそうにありません。 code golf の腕も磨いていきたいと思います。