Program Lab_4_3;
uses crt, Types, Poligon, IOGeom, GrGeom;

(****************************************
 * Infasuratoarea convexa:
 *   Algoritmul Graham, varianda Andrew.
 ****************************************)

const
  filein  = 'Infasa.txt';
  fileout = 'Lab_4_3.txt';

var
  p: TabelPuncte;
  S: TabelPuncte;
  nr, nr_S: integer;

begin
  clrscr;
  writeln;

  { Citirea datelor din fisierul <filein>, daca exista }
  nr := readf_puncte(filein, p);

  { Citirea datelor de la tastatura }
  if nr = 0 then begin
     nr := introdu_puncte(p);
     {Salvarea punctelor in fisier}
     writef_puncte(filein, p, nr);
  end;

  { Afisarea coordonatelor inainte de transformare }
  write_puncte(p, nr);

  { Determinarea punctelor infasuratoarei convexe }
  nr_S := Andrew(p, S, nr);
  writeln('nr_S = ', nr_S);
  readkey;
  { Afisarea rezultatului }
  clrscr;
  writeln;
  write_puncte(S, nr_S);

  drow_set_puncte(p, nr, GREEN);
  delay(1000);
  drow_poligon(S, nr_S);
  drow_set_puncte(S, nr_S, RED);

  { Salvarea rezultatului in fisierul <fileout> }
  writef_puncte(fileout, S, nr_S);

  readkey;
end.