MODULE FigureLibDemo;


(*****************************************************************************)
(*                                                                           *)
(*  Modul: FigureLibDemo                   Version 1.0 vom 1. November 1990  *)
(*                                                                           *)
(*  Für M2Amiga Modula-2 von Paul Lukowicz                                   *)
(*                                                                           *)
(*****************************************************************************)

(* $F- $R- $V- $N- *)


(* Die folgenden Importe beziehen sich auf die GraphicTreasures *)

FROM  ColorLib    IMPORT  SetColors;
FROM  Dos         IMPORT  Delay;
FROM  GfxDecs     IMPORT  GfxPtr, Hi8;
FROM  GfxSystem   IMPORT  OpenGfx, CloseGfx;
FROM  FigureLib   IMPORT  Arc, Ngon, Star, Trapez, HiResCompense;


VAR  i, x, y, ang, c : INTEGER;
     Gfx             : GfxPtr;


PROCEDURE  IncCol ( VAR c : INTEGER );

(*  Inkrementiert den Wert von c zyklisch zwischen 1 und  7  *)

BEGIN
 INC(c);
 IF c > 7 THEN
  c := 1
 END;
END IncCol;

BEGIN
Gfx := OpenGfx(Hi8,FALSE);                   (* Einen "Grafik-Screen" öffnen  *)
SetColors(Gfx,0,0,"000 B00 B22 B44 B66 B88 BAA BBB"); (* Farbregister setzen  *)
HiResCompense(10,15);          (*  Ausgleich der Verzerrung durch HiRes  ein  *)
ang := 0; c := 0;

FOR i := 0 TO 10 DO
 IncCol(c);
 Ngon(Gfx,100,100,100,4,ang,c,0);
 Ngon(Gfx,100,200,(i+1)*3,10,ang DIV 10,c,0);
 Star(Gfx,500,200,(i+1)*2,(i+1)*5,5,0,c,0);
 INC(ang,360);
END;

(*  Spirale aus Kreisbögen erzeugen  *)
FOR i := 0 TO 70 DO
 Arc(Gfx,300,100,5+i,80,ang,1,0);
 INC(ang,320);
END;

(*  Polygon als Linien von der obersten Ecke zu den anderen Ecken zeichnen  *)
Ngon(Gfx,300,200,30,10,0,1,3);

(*  Kreis mit Linien gefüllt zeichnen  *)
Arc(Gfx,500,100,50,2600,0,1,2);

(*  Warten und alles schließen  *)
Delay(150);
CloseGfx(Gfx);

END FigureLibDemo.
