Mandelbrot halmaz (fraktal)

Valamikor még a vízcsapból is ez folyt

procedure TForm1.FormPaint(Sender: TObject);
var dx,dy: real;
i,j: word;
aa,bb,iteration,MaxIteration:byte;
a,b,old_a: real;
begin
bb:=7;
MaxIteration:=80;
dx:=3/Form1.Width;
dy:=2.8/Form1.Height;
for j:=0 to Form1.Height do
for i:=0 to Form1.Width do begin
a:=0;
b:=0;
iteration:=0;
repeat
old_a:= a;
a:= a*a - b*b + -2+i*dx;
b:= 2*old_a*b + -1.4+j*dy;
inc(iteration);
until (a*a+b*b > 4) or (iteration > MaxIteration);
aa:=iteration;
case aa of
0..2:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
3..6:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
7..10:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
11..14:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
15..18:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
19..22:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
23..26:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
27..30:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
31..34:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
35..38:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
39..42:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
43..45:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
46..49:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
50..53:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
54..57:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
58..61:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
62..65:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
66..69:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
70..77:Form1.Canvas.Pixels[i,j]:=rgb(aa*bb,aa*bb,aa);
80..255:Form1.Canvas.Pixels[i,j]:=rgb(0,0,0);
end;
end;
end;