SCREEN 7, , 0, 1 C = 10 XC = 160: YC = 100 X1 = 0: Y1 = -70: Z1 = -35 X2 = -40: Y2 = 70: Z2 = -35 X3 = 40: Y3 = 70: Z3 = -35 X4 = 0: Y4 = -70: Z4 = 35 X5 = -40: Y5 = 70: Z5 = 35 X6 = 40: Y6 = 70: Z6 = 35 GOSUB DrawObject DO K$ = INKEY$ IF K$ = "2" THEN Angle = 5 * .017453: GOSUB Rotate IF K$ = "8" THEN Angle = -5 * .017453: GOSUB Rotate IF K$ = "4" THEN Angle = 5 * .017453: GOSUB Rotate IF K$ = "6" THEN Angle = -5 * .017453: GOSUB Rotate IF K$ = "7" THEN Angle = 5 * .017453: GOSUB Rotate IF K$ = "9" THEN Angle = -5 * .017453: GOSUB Rotate IF K$ = CHR$(27) THEN END LOOP Rotate: X = X1: Y = Y1: Z = Z1: GOSUB Formula X1 = X: Y1 = Y: Z1 = Z X = X2: Y = Y2: Z = Z2: GOSUB Formula X2 = X: Y2 = Y: Z2 = Z X = X3: Y = Y3: Z = Z3: GOSUB Formula X3 = X: Y3 = Y: Z3 = Z X = X4: Y = Y4: Z = Z4: GOSUB Formula X4 = X: Y4 = Y: Z4 = Z X = X5: Y = Y5: Z = Z5: GOSUB Formula X5 = X: Y5 = Y: Z5 = Z X = X6: Y = Y6: Z = Z6: GOSUB Formula X6 = X: Y6 = Y: Z6 = Z GOSUB DrawObject RETURN Formula: OldX = X: OldY = Y: OldZ = Z IF K$ = "2" OR K$ = "8" THEN Y = (SIN(Angle) * OldZ) + (COS(Angle) * OldY) Z = (COS(Angle) * OldZ) - (SIN(Angle) * OldY) END IF IF K$ = "4" OR K$ = "6" THEN X = (COS(Angle) * OldX) - (SIN(Angle) * OldZ) Z = (SIN(Angle) * OldX) + (COS(Angle) * OldZ) END IF IF K$ = "7" OR K$ = "9" THEN X = (COS(Angle) * OldX) + (SIN(Angle) * OldY) Y = (COS(Angle) * OldY) - (SIN(Angle) * OldX) END IF RETURN DrawObject: CLS LINE (X1 + XC, Y1 + YC)-(X2 + XC, Y2 + YC), C LINE (X2 + XC, Y2 + YC)-(X3 + XC, Y3 + YC), C LINE (X3 + XC, Y3 + YC)-(X1 + XC, Y1 + YC), C LINE (X4 + XC, Y4 + YC)-(X5 + XC, Y5 + YC), C LINE (X5 + XC, Y5 + YC)-(X6 + XC, Y6 + YC), C LINE (X6 + XC, Y6 + YC)-(X4 + XC, Y4 + YC), C LINE (X1 + XC, Y1 + YC)-(X4 + XC, Y4 + YC), C LINE (X2 + XC, Y2 + YC)-(X5 + XC, Y5 + YC), C LINE (X3 + XC, Y3 + YC)-(X6 + XC, Y6 + YC), C PCOPY 0, 1 RETURN