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

  1. (*-------------------------------------------------------------------------*)
  2. (*                             GRAFSYS.PAS                                 *)
  3. (*   Grafik-Initialisierungs- und -Abschlussprozeduren, Punkt- und Farb-   *)
  4. (*                       setzung fuer die Grafikserie                      *)
  5. (*                                                                         *)
  6. (* Hier implementiert mit Turbo-Pascal auf einem MS-DOS Rechner mit der    *)
  7. (* Color-Graphikkarte CGA                                                  *)
  8. (*-------------------------------------------------------------------------*)
  9. (*                        Zeichenfarbe setzen:                             *)
  10.  
  11. PROCEDURE Set_Pen_Color (color: Sys_Colors);
  12.  
  13. BEGIN
  14.   Pen_Color := color;
  15.   HiResColor(color);
  16. END;
  17.  
  18. (*-------------------------------------------------------------------------*)
  19. (*                      Hintergrundfarbe setzen:                           *)
  20.  
  21. PROCEDURE Set_Background (color: Sys_Colors);
  22.  
  23. BEGIN
  24.   GraphBackground(color);
  25. END;
  26.  
  27. (*-------------------------------------------------------------------------*)
  28. (*                        Grafikmodus aktivieren:                          *)
  29.  
  30. PROCEDURE Enter_Graphic;
  31.  
  32. BEGIN
  33.   HiRes;                       (* Aufloesung hier 640x200 Punkte, 2 Farben *)
  34.   Set_Background(Black);                      (* Farbbezeichner sind in    *)
  35.   Set_Pen_Color(White);                       (* Turbo-Pascal vordefiniert *)
  36.   Pen_Xpos := 0;                 (* 'Zeichenstift' auf definierte Position *)
  37.   Pen_Ypos := 0;
  38. END;
  39.  
  40. (*-------------------------------------------------------------------------*)
  41. (*                       Grafikmodus verlassen:                            *)
  42.  
  43. PROCEDURE Exit_Graphic;
  44.  
  45. BEGIN
  46.   TextMode;
  47. END;
  48.  
  49. (*-------------------------------------------------------------------------*)
  50. (*   Punkt auf die vom System vorgegebenen Bildschirmkoordinaten setzen:   *)
  51.  
  52. PROCEDURE Point_System (x: x_Koord_Sys; y: y_Koord_Sys);
  53.  
  54. BEGIN
  55.   Plot(x, y, Pen_Color);
  56. END;
  57.  
  58. (*-------------------------------------------------------------------------*)
  59. (* Punkt aus unserem Koordinatensystem (Ursprung (0,0) links unten!) in
  60.    Bildschirmkoordinaten uebertragen. Falls beide Systeme gleich, sollten
  61.    aus Geschwindigkeitsgruenden die Fallunterscheidung sowie die Additionen
  62.    von 'ScreenXmin_Sys' und 'ScreenYmin_Sys' weggelassen werden!           *)
  63.  
  64. PROCEDURE Point (x: x_Koord; y: y_Koord);
  65.  
  66. BEGIN
  67.   IF Origin_is_Top THEN
  68.     Point_System(x + ScreenXmin_Sys, ScreenYmax - y + ScreenYmin_Sys)
  69.   ELSE
  70.     Point_System(x + ScreenXmin_Sys, y + ScreenYmin_Sys);
  71.   Pen_Xpos := x;
  72.   Pen_Ypos := y;
  73. END;
  74.  
  75. (*-------------------------------------------------------------------------*)
  76. (* Point-SWAP fuer die Graphikserie. Vertauscht die Koord. zweier Punkte.  *)
  77.  
  78. PROCEDURE point_swap (VAR x1, y1, x2, y2: INTEGER);
  79.  
  80. VAR hilf: INTEGER;
  81.  
  82. BEGIN
  83.   hilf := x1;  x1 := x2;  x2 := hilf;
  84.   hilf := y1;  y1 := y2;  y2 := hilf;
  85. END;
  86.  
  87. (*-------------------------------------------------------------------------*)
  88. (*                          Ende von GRAFSYS.PAS                           *)
  89.