![見出し画像](https://assets.st-note.com/production/uploads/images/74363737/rectangle_large_type_2_e5773748a13b98889aca3e3e8e7a035a.png?width=1200)
木を描く
年度末進行で今日も忙しいので、過去作より棚つか。再帰で木を描く、よくあるプログラムである。このプログラムを作った当時のメモには「失敗」の文字が添えてあった。おそらく、乱数による変動が酷いためであろう。
たまたま 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)
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?