Egy Koch görbe kirajzolása rekurzív algoritmussal

program KochRek;
uses crt, graph;
var mode, driver: integer;
    f: real;

procedure rajz(x, y, alfa, d: real);
  begin
    if d > f then
      begin
        d := d / 3;
        rajz(x, y, alfa, d);
        rajz(x+d*cos(alfa), y+d*sin(alfa), alfa+pi/3, d);
        rajz(x+d*cos(alfa)+d*cos(alfa+pi/3), y+d*sin(alfa)+d*sin(alfa+pi/3), alfa-pi/3, d);
        rajz(x+2*d*cos(alfa), y+2*d*sin(alfa), alfa, d);
      end
    else
      line(round(x), round(480-y), round(x+d*cos(alfa)), 480-round(y+d*sin(alfa)))
  end;

begin
  driver:=detect;
  initgraph(driver,mode,'c:\bp\bgi');
  setcolor(green);
  f:=3;
  rajz(0,200,0,600);
  readkey;
  closegraph
end.