はじめに
このページでは、以下の作品のプログラムリストを紹介します:
今日は、 @deconbatch さんの note https://t.co/WSxeLMv9yo を参考に、滑らかに繋がる閉曲線を描いてみました。
— Koji Saito (@KojiSaito) June 11, 2020
文字数削減する時間がなかったので、つぶやきProcessing はできそうにありません。また機会をみて挑戦してみたいと思います。#dailycodingchallenge #Processing #generativeart pic.twitter.com/eUx1XmkIus
いい感じに歪んだ円=閉曲線を描こうとする場合、 ノイズを用いて半径を決め、角度を変えつつ描画しようと思いつきます。
しかし、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 の腕も磨いていきたいと思います。