procedure TForm1.Button1Click(Sender: TObject); var a,b,c,d,e,f: array[0..3] of real; NX,NY,n,r,i,j,k,ix,iy: Integer; x,y,xlast,ylast,xmin,xmax, ymin,ymax,xmid,ymid,scale: real; begin Button1.Enabled:=false; NX:=400; NY:=400; a[0]:=0; a[1]:=0.2; a[2]:=-0.15; a[3]:=0.75; b[0]:=0; b[1]:=-0.26; b[2]:=0.28; b[3]:=0.04; c[0]:=0; c[1]:=0.23; c[2]:=0.26; c[3]:=-0.04; d[0]:=0.16; d[1]:=0.22; d[2]:=0.24; d[3]:=0.85; e[0]:=0; e[1]:=0; e[2]:=0; e[3]:=0; f[0]:=0; f[1]:=1.6; f[2]:=0.44; f[3]:=1.6; n:= 100000; //Hier koennten auch mehr oder weniger Iterationen eingesetzt werden xlast:=0; ylast:=0; xmin:=1e32; xmax:=-1e32; ymin:=1e32; ymax:=-1e32; for j:=0 to 2 do begin for i:=0 to n do begin r := random(100); case r of 0..9: k:=0; 10..17: k:=1; 18..25: k:=2; else k:=3; end; x := a[k] * xlast + b[k] * ylast + e[k]; y := c[k] * xlast + d[k] * ylast + f[k]; xlast := x; ylast := y; if (x > xmin) then begin xmin := x; end; if (y > ymin) then begin ymin := y; end; if (x > xmax) then begin xmax := x; end; if (y > ymax) then begin ymax := y; end; if (j = 1) then begin scale := MIN(NX / (xmax - xmin),NY / (ymax - ymin)); xmid := (xmin + xmax) / 2; ymid := (ymin + ymax) / 2; ix := round(NX / 2 + (x - xmid) * scale); iy := round(NY / 2 + (y - ymid) * scale); Image1.Canvas.Pixels[ix,400-iy]:=clblack; end; end; end; Button1.Enabled:=true; end;