CLS : SCREEN 12 X = 320: Y = 240: kY = 1: kX = 1: Alpha = 0: Pi = 3.141592653589793# DO CIRCLE (X, Y), 40, 2 LINE (X + COS(Alpha - .01) * 40, Y + SIN(Alpha - .01) * 40)-(X + COS(Alpha - .01) * 150, Y + SIN(Alpha - .01) * 150), 2 LINE (X + COS(Alpha + .01) * 40, Y + SIN(Alpha + .01) * 40)-(X + COS(Alpha + .01) * 150, Y + SIN(Alpha + .01) * 150), 2 CIRCLE (X + COS(Alpha) * 160, Y + SIN(Alpha) * 160), 10, 3 FOR I = -Alpha TO Pi * 2 - Alpha STEP Pi * 2 / 3 IF I <> -Alpha THEN LINE (X + A * 40, Y + B * 40)-(X + COS(I) * 40, Y + SIN(I) * 40), 7 IF I <> -Alpha THEN LINE (X + A * 36, Y + B * 36)-(X + COS(I) * 36, Y + SIN(I) * 36), 7 A = COS(I): B = SIN(I) NEXT I: LINE (X + A * 40, Y + B * 40)-(X + COS(-Alpha) * 40, Y + SIN(-Alpha) * 40), 7 LINE (X + A * 36, Y + B * 36)-(X + COS(-Alpha) * 36, Y + SIN(-Alpha) * 36), 7 X3 = X2: X2 = X: Y3 = Y2: Y2 = Y: Alpha3 = Alpha2: Alpha2 = Alpha SELECT CASE INKEY$ CASE CHR$(0) + CHR$(80): GOSUB 1 CASE CHR$(0) + CHR$(72): GOSUB 2 CASE CHR$(0) + CHR$(77): GOSUB 3 CASE CHR$(0) + CHR$(75): GOSUB 4 CASE "s": vAlpha = vAlpha + Pi / 180 CASE "x": vAlpha = vAlpha - Pi / 180 CASE CHR$(27): GOSUB 5 END SELECT IF vAlpha > 100 THEN vAlpha = 100 Alpha = Alpha + vAlpha vAlpha = vAlpha / 1.001 Y = Y + kY * vY vY = vY / 1.002 - SGN(vY) * .005 IF vY < .005 THEN vY = 0 X = X + kX * vX vX = vX / 1.002 - SGN(vX) * .005 IF vX < .005 THEN vX = 0 IF Y <= 40 THEN kY = -1 * kY IF Y >= 440 THEN kY = -1 * kY IF X <= 40 THEN kX = -1 * kX IF X >= 600 THEN kX = -1 * kX IF X2 <> X3 OR Y2 <> Y3 OR Alpha2 <> Alpha3 THEN CIRCLE (X3, Y3), 40, 0 LINE (X3 + COS(Alpha3 - .01) * 40, Y3 + SIN(Alpha3 - .01) * 40)-(X3 + COS(Alpha3 - .01) * 150, Y3 + SIN(Alpha3 - .01) * 150), 0 LINE (X3 + COS(Alpha3 + .01) * 40, Y3 + SIN(Alpha3 + .01) * 40)-(X3 + COS(Alpha3 + .01) * 150, Y3 + SIN(Alpha3 + .01) * 150), 0 CIRCLE (X3 + COS(Alpha3) * 160, Y3 + SIN(Alpha3) * 160), 10, 0 FOR I = -Alpha3 TO Pi * 2 - Alpha3 STEP Pi * 2 / 3 IF I <> -Alpha3 THEN LINE (X3 + A * 40, Y3 + B * 40)-(X3 + COS(I) * 40, Y3 + SIN(I) * 40), 0 IF I <> -Alpha3 THEN LINE (X3 + A * 36, Y3 + B * 36)-(X3 + COS(I) * 36, Y3 + SIN(I) * 36), 0 A = COS(I): B = SIN(I) NEXT I: LINE (X3 + A * 40, Y3 + B * 40)-(X3 + COS(-Alpha3) * 40, Y3 + SIN(-Alpha3) * 40), 0 LINE (X3 + A * 36, Y3 + B * 36)-(X3 + COS(-Alpha3) * 36, Y3 + SIN(-Alpha3) * 36), 0 END IF LOOP 1 IF kY = 1 THEN vY = vY * 1.05 + .2 ELSE vY = vY - .2 IF vY <= 0 THEN vY = ABS(vY): kY = -1 * kY RETURN 2 IF kY = -1 THEN vY = vY * 1.05 + .2 ELSE vY = vY - .2 IF vY <= 0 THEN vY = ABS(vY): kY = -1 * kY RETURN 3 IF kX = 1 THEN vX = vX * 1.05 + .2 ELSE vX = vX - .2 IF vX <= 0 THEN vX = ABS(vX): kX = -1 * kX RETURN 4 IF kX = -1 THEN vX = vX * 1.05 + .2 ELSE vX = vX - .2 IF vX <= 0 THEN vX = ABS(vX): kX = -1 * kX RETURN 5 END