Egy Koch görbe kirajzolása fraktáltenisz algoritmussal
program koch;
uses
Graph, crt;
var
grDriver, grMode, h, j: integer;
x, y, x1, x2, r, alfa: 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
grDriver := Detect;
InitGraph(grDriver, grMode, 'c:\bp\bgi');
x := 100; y := 200; j := 0;
cleardevice;
repeat
inc(j);
h := random(4);;
case h of
0:begin
x := x / 3;
y := y / 3;
end;
1:begin
x := x / 3 + 400;
y := y / 3;
end;
2:begin
x := x / 3;
y := y / 3;
forgat(pi / 3);
x := x + 200;
end;
3:begin
x := x / 3;
y := -y / 3;
forgat(2/3 * pi);
x := x + 400;
end;
end;
if j > 10 then
begin
putpixel(round(x), round(240 - y), green);
j := 11
end;
until keypressed;
CloseGraph;
end.