Páfrány kirajzolása fraktáltenisz algoritmussal
program pafrany;
uses graph, crt;
var h, gd, gm, i: integer;
x, y: real;
procedure forgat(beta: real);
var r, alfa: real;
begin
r := sqrt(x * x + y * y);
if x > 0 then alfa := arctan(y / x)
else if x < 0 then alfa := pi - arctan(y / -x)
else if y >= 0 then alfa := pi / 2 else alfa := 3/2 * pi;
x := r * cos(alfa + beta);
y := r * sin(alfa + beta)
end;
begin
x := 100; y := 200;
gd := detect;
initgraph(gd, gm, 'c:\bp\bgi');
i := 0;
repeat
h := random(10);
if i < 101 then inc(i);
case h of
0..6:begin
y := y * 0.8;
x := x * 0.8;
forgat(pi / 25);
y := y + 110;
end;
7:begin
x := x / 5;
y := y / 3;
forgat(-pi / 3);
y := y + 70;
end;
8:begin
x := x / 5;
y := y / 3;
forgat(pi / 3);
y := y + 100;
end;
9:begin
y := y / 4;
x := x / 500;
end
end;
if i > 100 then putpixel(round(x) + 300, round(480 - y), green);
until keypressed;
readln;
closegraph;
end.