{$N+} Program Lab_1_1; uses crt, Types, Transf, IOGeom, GrGeom, Graph, OPolig; (**************************************** * Transformarea coordonatelor: * Rotatia unui set de puncte ****************************************) const filein = 'Puncte.txt'; fileout = 'Lab_1_1.txt'; var r, p: TPoligon; i, mx, my: integer; alfa: real; begin alfa := 0; p.Init(0); r.Init(0); clrscr; { Citirea datelor din fisierul , daca exista } p.LoadFromFile(filein); {nr := readf_puncte(filein ,p);} { Citirea coordonatelor punctelor de la tastatura } if p.nr = 0 then begin writeln(#10#13'Introdu nr de puncte: '); readln(i); writeln('Sa generez punctele? (D/N)'); if(UpCase(ReadKey)='D') then begin if(MidX=0)or(MidY=0) then begin mx := 325; my := 200 end else begin mx := MidX; my := MidY end; p.Generate(i, mx, my); end else p.Input(i); p.SaveToFile(filein); end; r.SetSize(p.nr); writeln; writeln('Introdu unghiul de rotatie: '); readln(alfa); { Afisarea coordonatelor inainte de transformare } gr_set := [fit_big]; with p do drow_set_puncte(p^, nr, WHITE); readkey; clearviewport; gr_set := []; { Rotirea setului de puncte } rot_set_puncte(r.p^, p.p^, p.nr, alfa); { Afisarea rezultatului } drow_set_puncte(r.p^, r.nr, WHITE); readkey; closegraph; { Salvarea rezultatului in fisierul } r.SaveToFile(fileout); r.Done; p.Done; end.