{Jozef Sivek ml. 18.decembra 2004
pekny program generujuci matematicku rozdelenu plochu
}
program divide;
uses graph,crt;

var
 Gd, Gm: integer;
 x,y:longint;
 k:real;
 q:integer;
 g_color_main,g_color_second:word;

procedure g_color_invert(x,y:integer);

          begin
          if getpixel(x,y)=g_color_main then putpixel(x,y,g_color_second)
                                        else putpixel(x,y,g_color_main);

          end;

begin
randomize;
g_color_main:=15;
g_color_second:=0;


 Gd := Detect;
 InitGraph(Gd, Gm,'c:/bp/bgi');
 if GraphResult <> grOk then
   Halt(1);

      for x:=0 to getmaxx do begin
      for y:=0 to getmaxy do begin
        putpixel(x,y,g_color_main);
      end;end;


repeat
k:=random*8-4;
q:=round(random * getmaxx) - (getmaxx div 2);

      for x:=0 to getmaxx do begin
      for y:=0 to getmaxy do begin
         {rovnica priamky znie
         y=k*x + q
         tj.
         }
        if (getmaxy div 2 - y) < ( k*(x - getmaxx div 2) + q ) then g_color_invert(x,y);

      end;end;

until keypressed;

 CloseGraph;
end.

