2sintreepipe.L3A Test Bed | Generated by L3_IDE 3.033/English |
木の枝のパイプモデルによるシュミレーション
レオナルド・ダ・ビンチは樹液が妨げられずに流れるためには、二つの枝の断面積の和は幹の断面積に等しくなければならないと考えた。このモデルは、川にも当てはまる。二つの川が合流すると水量も合わさる。
分岐した枝の直径をd1、d2、幹の直径をdとすると、d1^2+d2^2=d^2となる。したがって、d1=d2と考えると、d1=√2・dとなる。
木の成長率は、長さ/幅=一定≒100となっているが、これでシュミレーションするとうまく育たなかった(見栄えがよくなかった)ので、一定の比率で生長が少なくなるように設定した。 →【年輪の数学へ】
//「パイプモデル二進木」のプログラム
repeat 20
c=get_char(60)
up 0,-150,90;down
tree(55,c)
function tree(a,b)
if b>0
width c/(1.414^(c-b+1)) //枝の太さをパイプモデルによって決める
forward a
tree((a/1.2),b-1)
if (c-b)/2==int((c-b)/2)
left 40
else
right 40
tree((a/1.6),b-1)
if (c-b)/2==int((c-b)/2)
right 40
else
left 40
backward a
return