見出し画像

木を描く

 年度末進行で今日も忙しいので、過去作より棚つか。再帰で木を描く、よくあるプログラムである。このプログラムを作った当時のメモには「失敗」の文字が添えてあった。おそらく、乱数による変動が酷いためであろう。

たまたま randomSeed(0) と指定すると、(私の環境では)冒頭のような木が描かれる。しかし、これを外して実行すると全く安定しない。酷いものである。

乱数ではなくノイズを使うと改善するのかもしれないが、その点については今後の課題である。

size(500,500);stroke(0)
def T(l,w,n):
  if n==0:return
  strokeWeight(w+.5)
  w*=random(1)*.5+.3
  d=-l*(random(1)*.5+.3)
  line(0,0,0,d)
  translate(0,d)
  if random(1)<.8:
      push()
      rotate(random(1)-1);T(l*random(1.8),w,n-1)
      pop()
  else:
      T(l*random(1.5),w*.7,n-1)
  if random(1)<.3:
      push()
      rotate(-random(1)+1);T(l*random(1.5),w,n-1)
      pop()
  else:
      T(l*random(1.5),w*.8,n-1)
      
background(-1)
randomSeed(0)
translate(250,530)
T(40,15,12)


この記事が参加している募集

私の作品紹介

この記事が気に入ったらサポートをしてみませんか?