PROCEDURE ZeichneAlles;
VAR
StartX:REAL;
StartY:REAL;
BreiteL:REAL;
BreiteSeite:REAL;
X:REAL;
Y:REAL;
Z:REAL;
PROCEDURE ZeichneT(StartX:REAL; StartY:REAL; Breite:REAL);
VAR
X:REAL;
Y:REAL;
BEGIN
X := StartX;
Y := StartY;
MoveTo(X, Y);
X := X + (3 * Breite);
Y := Y;
LineTo(X, Y);
MoveTo(StartX, StartY);
LineTo(StartX, StartY - Breite);
MoveTo(X, Y);
LineTo(X, Y - Breite);
X := StartX;
Y := Y - Breite;
MoveTo(X, Y);
X := X + (3 * Breite);
Y := Y;
LineTo(X, Y);
MoveTo(X, Y);
X := X;
Y := Y - Breite;
LineTo(X, Y);
MoveTo(X, Y);
X := X - Breite;
Y := Y;
LineTo(X, Y);
MoveTo(X, Y);
X := X;
Y := Breite * -1;
LineTo(X, Y);
MoveTo(X, Y);
X := X - Breite;
Y := Y;
LineTo(X, Y);
MoveTo(X, Y);
X := X;
Y := StartY - (2 * Breite);
LineTo(X, Y);
MoveTo(X, Y);
X := X - Breite;
Y := Y;
LineTo(X, Y);
MoveTo(X, Y);
X := StartX;
Y := StartY;
LineTo(X, Y);
END;
PROCEDURE ZeichneL(StartX:REAL; StartY:REAL; Breite:REAL; Hoehe:REAL; IstRechts:INTEGER; IstOben:INTEGER);
VAR
X:REAL;
Y:REAL;
BEGIN
X := StartX;
Y := StartY;
MoveTo(X, Y);
X := X;
Y := Y + (Hoehe * IstOben);
LineTo(X, Y);
MoveTo(X, Y);
X := X + (2 * Breite * IstRechts);
Y := Y;
LineTo(X, Y);
MoveTo(X, Y);
X := X;
Y := Y + (Breite * IstOben * -1);
LineTo(X, Y);
MoveTo(X, Y);
X := X + (Breite * IstRechts * -1);
Y := Y;
LineTo(X, Y);
MoveTo(X, Y);
X := X;
Y := StartY;
LineTo(X, Y);
MoveTo(X, Y);
X := StartX;
Y := StartY;
LineTo(X, Y);
END;
BEGIN
StartX := PX_START;
StartY := PY_START;
BreiteL := 1;
BreiteSeite := PBREITE_SEITE;
Z := 2;
X := StartX - ((BreiteL / 2) + (BreiteL * 2));
Y := StartY - BreiteL;
WHILE (Abs(X) <= (BreiteSeite / 2)) DO BEGIN
ZeichneL(X, Y, BreiteL, Z, 1, -1);
ZeichneL(X *-1, Y, BreiteL, Z, -1, -1);
ZeichneL(X + 2 BreiteL, -Z, BreiteL, Y, -1, 1);
ZeichneL((X + 2 BreiteL) * -1, -Z, BreiteL, Y, 1, 1);
Z := Z + BreiteL;
X := X - BreiteL;
Y := Y - BreiteL;
END;
ZeichneT(StartX - ((BreiteL / 2) + BreiteL), StartY, BreiteL);
END;
Run(ZeichneAlles);