home *** CD-ROM | disk | FTP | other *** search
- (*-------------------------------------------------------------------------*)
- (* WINGRAF.PAS *)
- (* Zeichenroutinen, die in Windowkoordinaten arbeiten. *)
-
- PROCEDURE pointw( x, y : REAL );
-
- BEGIN
- point(x_WinTrans(x),y_WinTrans(y))
- END;
-
-
- PROCEDURE linew( x1, y1, x2, y2 : REAL );
-
- BEGIN
- Line(x_WinTrans(x1), y_WinTrans(y1), x_WinTrans(x2), y_WinTrans(y2))
- END;
-
- (* . *)
- (* . *)
- (* . *)
- (* Z.B. die Routinen zum relativen Zeichnen sollten in einer *)
- (* Version fuer Windowkoordinaten geschrieben werden. *)
- (* . *)
- (* . *)
- (* . *)
-
- (* Erweiterung zu den Window-Grafikroutinen (PASCAL 6/87) zum relativen *)
- (* Zeichnen bezueglich der Zeichenstiftposition. *)
- (* Transformationsfunktionen fuer relative Koordinaten *)
-
- FUNCTION xRel_WinTrans(x : REAL) : INTEGER;
-
- BEGIN
- WITH Window[AktWin]^ DO
- xRel_WinTrans := Round(x * Pixel_pro_x)
- END;
-
-
- FUNCTION yRel_WinTrans(y : REAL) : INTEGER;
-
- BEGIN
- WITH Window[AktWin]^ DO
- yRel_WinTrans := Round(y * Pixel_pro_y)
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Relative Bewegung des Stift in Window-Koordinaten *)
-
- PROCEDURE movewr(x, y : REAL);
-
- BEGIN
- Pen_XPos := Pen_XPos + xRel_WinTrans(x);
- Pen_YPos := Pen_YPos + yRel_WinTrans(y);
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Relatives Zeichnen bezueglich der Stiftposition in Window-Koordinaten *)
-
- PROCEDURE linewr(x, y : REAL);
-
- BEGIN
- Line(Pen_XPos, Pen_YPos,
- Pen_XPos + xRel_WinTrans(x) , Pen_YPos + yRel_WinTrans(y));
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Relatives Punktsetzen bezueglich der *)
- (* Stiftposition in Window-Koordinaten *)
-
- PROCEDURE pointwr(x, y : REAL);
-
- BEGIN
- point(Pen_XPos + xRel_WinTrans(x), Pen_YPos + yRel_WinTrans(y));
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Bewegung zu absoluter Position in Windowkoord.: *)
-
- PROCEDURE movewa(x, y : REAL);
-
- BEGIN
- Pen_XPos := x_WinTrans(x); Pen_YPos := y_WinTrans(y);
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Zeichnen von Stiftposition zu absoluter Position in Windowkoord.: *)
-
- PROCEDURE linewa(x, y : REAL);
-
- BEGIN
- Line(Pen_XPos, Pen_YPos, x_WinTrans(x), y_WinTrans(y));
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Ende WINGRAF.PAS *)