home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* GRAFTEST.MOD *)
- (* (c) 1990 Rainer Hamann & TOOLBOX *)
- (* ------------------------------------------------------ *)
- MODULE GrafTest;
-
- FROM Grafik IMPORT
- ColArray,
- GrafScreen, TextScreen, Plot, Line, xMaxScr, yMaxScr,
- WriteText, WriteGrafText, ClearGrafScreen,
- DefineGrafWindow, SelectGrafWindow, StoreGrafWindow,
- RestoreGrafWindow, MoveGrafWindow, Colour,
- PenColor, DotColor, Circle, Arc;
-
- FROM InOut IMPORT Read;
-
- (* IMPORT Break; *)
-
- VAR
- c : CHAR;
- xMitte, yMitte, m, n : INTEGER;
- CA : ColArray;
- (* die Zeichenketten für die Steuerzeichen dürfen nur
- so lang deklariert werden, wie sie wirklich benötigt
- werden, da das Ende über die Deklarationslänge
- bestimmt wird *)
- TextVorschub : ARRAY[0..1] OF CHAR;
- GrafikSteuerZeichen, GrafikVorschub
- : ARRAY[0..2] OF CHAR;
-
- BEGIN
- GrafScreen;
- xMitte := xMaxScr DIV 2;
- yMitte := yMaxScr DIV 2;
- (* Fenster definieren *)
- DefineGrafWindow(2, xMitte - 200, yMitte - 90,
- xMitte + 200, yMitte + 90);
- DefineGrafWindow(3, xMitte - 100, yMitte - 70,
- xMitte + 100, yMitte + 70);
- (* Punktraster *)
- FOR n := 0 TO yMitte BY 10 DO
- FOR m := 0 TO xMitte BY 10 DO
- Plot(xMitte + m, yMitte + n);
- Plot(xMitte - m, yMitte + n);
- Plot(xMitte + m, yMitte - n);
- Plot(xMitte - m, yMitte - n);
- END;
- END;
- Read(c);
- (* Circle- und Arc-Test *)
- FOR n := 0 TO yMitte BY 10 DO
- Circle(xMitte, yMitte, n);
- Arc(0, yMitte, -45, 45, n);
- END;
- StoreGrafWindow(2);
- Read(c);
- (* Line-Test *)
- ClearGrafScreen;
- FOR m := 0 TO xMaxScr BY 7 DO
- Line(m, 0, xMitte, yMitte);
- Line(m, yMaxScr, xMitte, yMitte);
- END;
- FOR n := 0 TO yMaxScr BY 5 DO
- Line(0, n, xMitte, yMitte);
- Line(xMaxScr, n, xMitte, yMitte);
- END;
- (* Test für Farb-Palette *)
- FOR n := 0 TO 15 DO
- PenColor(CA[n]);
- FOR m := 0 TO 39 DO
- Line(n * 40 + m, 0, n * 40 + m, 30);
- END;
- END;
- (* Write-Test *)
- WriteText(10, 10,
- 'Text-Ausgabe mit "WriteText" wie auf dem Textschirm');
- WriteGrafText(50, yMaxScr - 35, White,
- 'Text-Ausgabe mit "WriteGrafText" ');
- Read(c);
- (* Test für Store- und RestoreGrafWindow *)
- StoreGrafWindow(3);
- RestoreGrafWindow(2);
- RestoreGrafWindow(3);
- WriteGrafText(50, yMaxScr - 35, Black,
- 'Text-Ausgabe mit "WriteGrafText" ');
- WriteGrafText(50, yMaxScr - 15, White,
- 'und wieder löschen');
- Read(c);
- (* Fenster verschieben *)
- MoveGrafWindow(3, 50, 25);
- (* linke obere Bildhälfte am Bildmittelpunkt spiegeln *)
- FOR m := 0 TO xMitte DO
- FOR n := 0 TO yMitte DO
- PenColor(DotColor(m, n));
- Plot(xMaxScr - m, yMaxScr - n);
- END;
- END;
- Read(c);
- TextScreen;
- END GrafTest.
- (* ------------------------------------------------------ *)
- (* Ende von GRAFTEST.MOD *)
-