home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* PLOT01.PAS *)
- (* Plottergrafik : Quadratspirale *)
- (* Modus : EGA 640 x 350 *)
- (* *)
- (* (c) 1991 Bernd Haendel & TOOLBOX *)
- (* ------------------------------------------------------ *)
- {$N+,E+}
-
- USES
- Crt, Dos, Graph;
-
- VAR
- Color1, Color2, Color3, Color4 : WORD;
- Color5, Color6 : WORD;
- Test : TEXT;
- GraphDriver, GraphMode : INTEGER;
- MinMode, MaxMode, I, NN : INTEGER;
- X0, Y0, DX0, DY0, XX, YY : INTEGER;
- KeyNr, MaxColorV, MaxColorH : INTEGER;
- Key : CHAR;
- ModeName : STRING;
- SL, SX, S, SH : REAL;
- X1, X2, X3, X4, XXN, DX1 : REAL;
- Y1, Y2, Y3, Y4, YYN, DY1 : REAL;
-
- {$I PLOTXX.INC }
-
- PROCEDURE AnfangsQuadrat; { Anfangsquadrat zeichnen }
- BEGIN
- X1 := -SH; Y1 := -SH; X2 := SH; Y2 := -SH;
- X3 := SH; Y3 := SH; X4 := -SH; Y4 := SH;
- SetColor(Color1); PlotLine(X1, Y1, X2, Y2);
- SetColor(Color2); PlotLine(X2, Y2, X3, Y3);
- SetColor(Color3); PlotLine(X3, Y3, X4, Y4);
- SetColor(Color4); PlotLine(X4, Y4, X1, Y1);
- SetColor(Color6);
- OutTextXY( 20, 10, 'Plot01');
- OutTextXY( 20, 335, 'Quadratspirale');
- OutTextXY(450, 335, 'B. Haendel & TOOLBOX');
- END;
-
- PROCEDURE NeuesQuadrat;
- { Verkürtztes neues Quadrat zeichnen }
- VAR
- DX, DY : REAL;
- XX1, XX2, XX3, XX4 : REAL;
- YY1, YY2, YY3, YY4 : REAL;
- BEGIN
- DX := Abs(X2-X1); DY := Abs(Y2-Y1);
- S := Sqrt(DX*DX + DY*DY); SH := 0.50 * S;
- NeuerPunkt(X1, Y1, X2, Y2); XX1 := XXN; YY1 := YYN;
- NeuerPunkt(X2, Y2, X3, Y3); XX2 := XXN; YY2 := YYN;
- NeuerPunkt(X3, Y3, X4, Y4); XX3 := XXN; YY3 := YYN;
- NeuerPunkt(X4, Y4, X1, Y1); XX4 := XXN; YY4 := YYN;
- X1 := XX1; X2 := XX2; X3 := XX3; X4 := XX4;
- Y1 := YY1; Y2 := YY2; Y3 := YY3; Y4 := YY4;
- SetColor(Color1); PlotLine(X1, Y1, X2, Y2);
- SetColor(Color2); PlotLine(X2, Y2, X3, Y3);
- SetColor(Color3); PlotLine(X3, Y3, X4, Y4);
- SetColor(Color4); PlotLine(X4, Y4, X1, Y1);
- END;
-
- BEGIN
- ClrScr;
- Grafmod; { Grafikmodus setzen }
-
- Color1 := Blue; { Seitenfarbe 1 }
- Color2 := Green; { Seitenfarbe 2 }
- Color3 := Magenta; { Seitenfarbe 3 }
- Color4 := Yellow; { Seitenfarbe 4 }
-
- Color5 := Black; { Hintergrundfarbe }
- Color6 := White; { Schriftfarbe }
-
- MaxColorV := 15; { max. Vordergrundfarbe }
- MaxColorH := 7; { max. Hintergrundfarbe }
-
- KoordAchsen; { Koordinatenachse festlegen }
-
- NN := 0; KeyNr := 59;
- WHILE KeyNr <> 68 DO BEGIN
- IF (KeyNr > 58) AND (KeyNr < 65) THEN BEGIN
- SL := 90.00; { Seitenlänge des Quadrats }
- SX := 1.50; { Verkürzung der Seitenlänge }
- SH := 0.50 * SL;
- HinterGrund; { Hintergrund füllen }
- Erklaerung; { Erklärung der F-Tasten }
- AnfangsQuadrat; { Anfangsquadrat zeichnen }
- WHILE SX < SH DO { Jeweils verkleinertes neues }
- NeuesQuadrat; { Quadrat zeichnen }
- END;
- REPEAT UNTIL KeyPressed;
- KeyNr := TastKey;
- Farben;
- Inc(NN); IF NN > 100 THEN KeyNr := 68;
- END;
-
- CloseGraph; { Grafikmodus zurücksetzen }
- TextColor(White);
- TextBackGround(Black); { bzW. auf alte Farben ... }
- ClrScr;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von PLOT01.PAS *)