rat = 0.3 # global fixed param.
ang = pi/7 # global fixed param.
draw(x,y,l,th) = sprintf(" to %f,%f", x+l*rat*cos(th), y+l*rat*sin(th))
back(x,y) = sprintf(" to %f,%f", x, y)
rang(a) = a*(1+0.7*(rand(0)-0.5))
tree(n, x, y, l, th) = (0 < n) ? draw(x, y, l, th).\
tree(n-1, x+l*rat*cos(th), y+l*rat*sin(th), l*(1-rat), th+rang(ang)).\
tree(n-1, x+l*rat*cos(th), y+l*rat*sin(th), l*(1-rat), th-rang(ang)).\
back(x, y): ""
N = 10 # ¼¡¿ô
Lx = 0.96
Ly = Lx*2.0/3;
seed = rand(time(1))
set xr [-Ly:Ly]
set yr [0:Lx]
unset key
unset border
unset tics
path = tree(N,0,0,1,pi/2)
path = sprintf("set object 1 polygon from 0,0").path
path = path.sprintf(" to 0,0")
eval path
set object 1 fillstyle solid 0.8 border lc rgb "dark-green" lw 2
set term pngc enh font ",10" size 480,360
set out "tree.png"
plot -1
!display "tree.png"
|