home *** CD-ROM | disk | FTP | other *** search
- (*-------------------------------------------------------------------------*)
- (* GRAFSYS.PAS *)
- (* Grafik-Initialisierungs- und -Abschlussprozeduren, Punkt- und Farb- *)
- (* setzung fuer die Grafikserie *)
- (* *)
- (* Hier implementiert mit Turbo-Pascal auf einem MS-DOS Rechner mit der *)
- (* Color-Graphikkarte CGA *)
- (*-------------------------------------------------------------------------*)
- (* Zeichenfarbe setzen: *)
-
- PROCEDURE Set_Pen_Color (color: Sys_Colors);
-
- BEGIN
- Pen_Color := color;
- HiResColor(color);
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Hintergrundfarbe setzen: *)
-
- PROCEDURE Set_Background (color: Sys_Colors);
-
- BEGIN
- GraphBackground(color);
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Grafikmodus aktivieren: *)
-
- PROCEDURE Enter_Graphic;
-
- BEGIN
- HiRes; (* Aufloesung hier 640x200 Punkte, 2 Farben *)
- Set_Background(Black); (* Farbbezeichner sind in *)
- Set_Pen_Color(White); (* Turbo-Pascal vordefiniert *)
- Pen_Xpos := 0; (* 'Zeichenstift' auf definierte Position *)
- Pen_Ypos := 0;
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Grafikmodus verlassen: *)
-
- PROCEDURE Exit_Graphic;
-
- BEGIN
- TextMode;
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Punkt auf die vom System vorgegebenen Bildschirmkoordinaten setzen: *)
-
- PROCEDURE Point_System (x: x_Koord_Sys; y: y_Koord_Sys);
-
- BEGIN
- Plot(x, y, Pen_Color);
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Punkt aus unserem Koordinatensystem (Ursprung (0,0) links unten!) in
- Bildschirmkoordinaten uebertragen. Falls beide Systeme gleich, sollten
- aus Geschwindigkeitsgruenden die Fallunterscheidung sowie die Additionen
- von 'ScreenXmin_Sys' und 'ScreenYmin_Sys' weggelassen werden! *)
-
- PROCEDURE Point (x: x_Koord; y: y_Koord);
-
- BEGIN
- IF Origin_is_Top THEN
- Point_System(x + ScreenXmin_Sys, ScreenYmax - y + ScreenYmin_Sys)
- ELSE
- Point_System(x + ScreenXmin_Sys, y + ScreenYmin_Sys);
- Pen_Xpos := x;
- Pen_Ypos := y;
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Point-SWAP fuer die Graphikserie. Vertauscht die Koord. zweier Punkte. *)
-
- PROCEDURE point_swap (VAR x1, y1, x2, y2: INTEGER);
-
- VAR hilf: INTEGER;
-
- BEGIN
- hilf := x1; x1 := x2; x2 := hilf;
- hilf := y1; y1 := y2; y2 := hilf;
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Ende von GRAFSYS.PAS *)