> restart: > ifs:=proc(imax) > # original program 'Chaos-Spiel fuer ein Farnblatt' written by > # Heinz-Otto Peitgen, Hartmut Juergens and Dietmar Saupe > # in BASIC > local e1, e2, e3, e4, f1, f2, f3, f4, x, y, xn, yn, z, i, pts; > x:=e1; > y:=0; > pts:=NULL; > e1:=0.5; e2:=0.57; e3:=0.408; e4:=0.1075; > f1:=0; f2:=-0.036; f3:=0.0893; f4:=0.27; > x:=e1; > y:=0; > for i from 1 to imax do > z:=rand()/1e12; > if z<=0.02 then > xn:=e1; > yn:=0.27*y+f1; > goto(100); > fi; > if z<=0.17 then > xn:=-0.139*x+0.263*y+e2; > yn:=0.246*x+0.224*y+f2; > goto(100); > fi; > if z<=0.3 then > xn:=0.17*x-0.215*y+e3; > yn:=0.222*x+0.176*y+f3; > goto(100); > fi; > xn:=0.781*x+0.034*y+e4; > yn:=-0.032*x+0.739*y+f4; > 100: > pts:=pts, [xn, yn]; > x:=xn; > y:=yn; > od; > [pts]; > end: > plot(ifs(10000), axes=NONE, style=point, symbol=POINT, scaling=constrained); >