home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1987 / 09 / grafik6 / wingraf.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1987-08-09  |  2.8 KB  |  96 lines

  1. (*-------------------------------------------------------------------------*)
  2. (*                            WINGRAF.PAS                                  *)
  3. (*          Zeichenroutinen, die in Windowkoordinaten arbeiten.            *)
  4.  
  5. PROCEDURE pointw( x, y : REAL );
  6.  
  7. BEGIN
  8.   point(x_WinTrans(x),y_WinTrans(y))
  9. END;
  10.  
  11.  
  12. PROCEDURE linew( x1, y1, x2, y2 : REAL );
  13.  
  14. BEGIN
  15.   Line(x_WinTrans(x1), y_WinTrans(y1), x_WinTrans(x2), y_WinTrans(y2))
  16. END;
  17.  
  18.         (*   .   *)
  19.         (*   .   *)
  20.         (*   .   *)
  21. (* Z.B. die Routinen zum relativen Zeichnen sollten in einer *)
  22. (* Version fuer Windowkoordinaten geschrieben werden.        *)
  23.         (*   .   *)
  24.         (*   .   *)
  25.         (*   .   *)
  26.  
  27. (* Erweiterung zu den Window-Grafikroutinen (PASCAL 6/87) zum relativen    *)
  28. (* Zeichnen bezueglich der Zeichenstiftposition.                           *)
  29. (*          Transformationsfunktionen fuer relative Koordinaten            *)
  30.  
  31. FUNCTION xRel_WinTrans(x : REAL) : INTEGER;
  32.  
  33. BEGIN
  34.   WITH Window[AktWin]^ DO
  35.     xRel_WinTrans := Round(x * Pixel_pro_x)
  36. END;
  37.  
  38.  
  39. FUNCTION yRel_WinTrans(y : REAL) : INTEGER;
  40.  
  41. BEGIN
  42.   WITH Window[AktWin]^ DO
  43.     yRel_WinTrans := Round(y * Pixel_pro_y)
  44. END;
  45.  
  46. (*-------------------------------------------------------------------------*)
  47. (*           Relative Bewegung des Stift in Window-Koordinaten             *)
  48.  
  49. PROCEDURE movewr(x, y : REAL);
  50.  
  51. BEGIN
  52.   Pen_XPos := Pen_XPos + xRel_WinTrans(x);
  53.   Pen_YPos := Pen_YPos + yRel_WinTrans(y);
  54. END;
  55.  
  56. (*-------------------------------------------------------------------------*)
  57. (*  Relatives Zeichnen bezueglich der Stiftposition in Window-Koordinaten  *)
  58.  
  59. PROCEDURE linewr(x, y : REAL);
  60.  
  61. BEGIN
  62.   Line(Pen_XPos, Pen_YPos,
  63.        Pen_XPos + xRel_WinTrans(x) , Pen_YPos + yRel_WinTrans(y));
  64. END;
  65.  
  66. (*-------------------------------------------------------------------------*)
  67. (*                    Relatives Punktsetzen bezueglich der                 *)
  68. (*                     Stiftposition in Window-Koordinaten                 *)
  69.  
  70. PROCEDURE pointwr(x, y : REAL);
  71.  
  72. BEGIN
  73.   point(Pen_XPos + xRel_WinTrans(x), Pen_YPos + yRel_WinTrans(y));
  74. END;
  75.  
  76. (*-------------------------------------------------------------------------*)
  77. (*               Bewegung zu absoluter Position in Windowkoord.:           *)
  78.  
  79. PROCEDURE movewa(x, y : REAL);
  80.  
  81. BEGIN
  82.   Pen_XPos := x_WinTrans(x);   Pen_YPos := y_WinTrans(y);
  83. END;
  84.  
  85. (*-------------------------------------------------------------------------*)
  86. (*    Zeichnen von Stiftposition zu absoluter Position in Windowkoord.:    *)
  87.  
  88. PROCEDURE linewa(x, y : REAL);
  89.  
  90. BEGIN
  91.   Line(Pen_XPos, Pen_YPos, x_WinTrans(x), y_WinTrans(y));
  92. END;
  93.  
  94. (*-------------------------------------------------------------------------*)
  95. (*                         Ende WINGRAF.PAS                                *)
  96.