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