作品解説
空の表現に一段落ついたので、 次のテーマとして微生物の世界を再び模索してみました。 つぶやき Processing を始めた頃、 ボルボックスを描こうとしていた のもありますし、 私にとっては微生物の世界というのは非常に魅力的に感じるモチーフです。
文字数超過で、 つぶやきProcessing できず(残念)。
— Koji Saito (@KojiSaito) March 14, 2020
Title: Micro world
顕微鏡で覗いた世界を 1 ツィートで作りたかったのですが、難しい。微生物の形状も全てアルゴリズムで生成。進行方向にあわせて向きが変わるところまで作り込んでます🙂 #Processing #creativecoding #generativeart pic.twitter.com/xPD2GwqzRU
この作品はツィートにもあるように、 微生物を模した形状が、進行方向に応じて向きを変えるように作ってあります。 実装方法については次のセクションで簡単に説明します。
ソースコードおよび解説
def setup():size(500,500);
def D(x,y,i,a):
beginShape()
for k in range(93):
t=k/15.;
r=(noise(i)*4+1)*exp(-4*t*(t-6.2))*1e-16
vertex(r*cos(t+a)+x,r*sin(t+a)+y)
endShape(2)
def draw():
background(255);
fill(250)
stroke(200,210,200)
f=frameCount*.0005;
randomSeed(1)
for i in range(100):
t=i*f+1
r=random(250)
x=r*cos(t)+random(300)+75
y=r*sin(t)+random(300)+75
D(x,y,i,t-PI/2)
関数 D で微生物の形状を描いています。 描画は極座標を活用し、角度を増加させつつ、半径を変化させた円として描いてます。 微生物の向きは、角度のオフセット(引数 a )にて実現しています。 a だけ回転角度をずらすことで、微生物がその方向に向くように調整しています。
関数 D のその他の引数は、x,y が微生物の位置を、 引数 i を i 番目の微生物の形を定めるパラメータとして使用しています。