home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
sonderh1
/
grafsys.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1987-03-13
|
3KB
|
89 lines
(*-------------------------------------------------------------------------*)
(* 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 *)