PROGRAM PRISMA ; {$U+} {$IBOX0.PAS} TYPE FELD = ARRAY [0..7] OF INTEGER ; CONST HOEHE = 90 ; BREITE = 160 ; RADIUS = 120 ; PRISHOCH = 40 ; VAR PROJWINK, DREHWINK : INTEGER ; KUERZFAKT : REAL ; X,Y : FELD ; BOGENMASS,WINKEL, X1,Y1 : REAL ; C,S,W1 : REAL ; I,J : INTEGER ; EINGABE : CHAR ; BEGIN CLRSCR ; WRITELN (chr($0e),' ***** DEMONSTRATIONSPROGRAMM PRISMA *****') ; WRITE ('DREHWINKEL : ') ; READLN (DREHWINK) ; PROJWINK :=45 ; KUERZFAKT:=0.5 ; BOGENMASS:= 3.1415/180 ; WINKEL :=PROJWINK * BOGENMASS ; C :=KUERZFAKT * COS (WINKEL) ; S :=KUERZFAKT * SIN (WINKEL) ; WINKEL :=0 ; WHILE WINKEL < 181 DO BEGIN FOR J:= 0 TO 3 DO BEGIN W1:= (WINKEL + J *120) * BOGENMASS ; X1:= RADIUS * COS (W1) ; Y1:= RADIUS *SIN (W1) ; X[J]:=ROUND (BREITE +X1 + C*Y1) ; Y[J]:=ROUND (HOEHE -S*Y1 + PRISHOCH) ; X[J+4]:=X[J] ; Y[J+4]:=ROUND(HOEHE -S*Y1 - PRISHOCH) ; END ; write (chr(27),'C',chr(3)) ; FOR J:= 0 TO 2 DO LINE (X[J],Y[J],X[J+1],Y[J+1]) ; FOR J:= 0 TO 2 DO LINE (X[J],Y[J],X[J+4],Y[J+4]) ; FOR J:= 4 TO 6 DO LINE (X[J],Y[J],X[J+1],Y[J+1]) ; delay (3000) ; write (chr(27),'C',chr(0)) ; FOR J:= 0 TO 2 DO LINE (X[J],Y[J],X[J+1],Y[J+1]) ; FOR J:= 0 TO 2 DO LINE (X[J],Y[J],X[J+4],Y[J+4]) ; FOR J:= 4 TO 6 DO LINE (X[J],Y[J],X[J+1],Y[J+1]) ; WINKEL:=WINKEL+DREHWINK ; END ; REPEAT UNTIL KEYPRESSED ; END.