REM PROGRAM SEASONS REM THIS PROGRAM ANIMATES THE ROTATING EARTH REM IT HAS 12 MERIDIANS LINES REM COULD ADD COLORS FOR DIFFERENT TIMES OF DAY REM COULD ADD OTHER SPOTS AT DIFFERENT LATITUDES - CONTINENTS PI = 3.141593: DRC = PI / 180 XC = 160: YC = 240: R = 50: RSPOT = 5 KFIN = 40 DIM AMP(20), AMPOLD(20), M$(20) DLTA0 = 23.5 * DRC M$(1) = "MARCH": M$(2) = "APRIL": M$(3) = "MAY" M$(4) = "JUNE": M$(5) = "JULY": M$(6) = "AUGUST" M$(7) = "SEPTEMBER": M$(8) = "OCTOBER": M$(9) = "NOVEMBER" M$(10) = "DECEMBER": M$(11) = "JANUARY": M$(12) = "FEBRUARY" SCREEN 12 LOCATE 3, 25: PRINT "MARCH OF THE SEASONS" LOCATE 11, 16: PRINT "NORTH POLE" LOCATE 20, 16: PRINT "SOUTH POLE" FOR ROT = 1 TO 300 GOSUB 1000 FOR I = 1 TO 8 THPHASE = I * PI / 96 DLTA = DLTA0 * SIN(PI / 48 * (ROT + I / 8)) XSUN = XC + 300 * COS(DLTA) YSUN = YC - 300 * SIN(DLTA) CIRCLE (XSUN, YSUN), 10, 14 PAINT (XSUN, YSUN), 14 ROT2 = ROT MOD 12 THSPOT = THPHASE + ROT2 * PI / 12 - PI / 2 + .13 XSPOT = XC + R * SIN(THSPOT) AMPSPT = ABS(1 / COS(THSPOT)) IF XSPOT > XC THEN HUESPT = 10 ELSE HUESPT = 2 CIRCLE (XSPOT, YC), RSPOT, HUESPT, , , AMPSPT PAINT (XSPOT, YC), HUESPT FOR J = 0 TO 11 AMP(J) = R * SIN((J - 6) * PI / 12 + THPHASE) FOR K = 0 TO KFIN PHI = (K - KFIN / 2) * PI / KFIN X = XC + AMP(J) * COS(PHI) X1 = XC + AMPOLD(J) * COS(PHI) Y = YC + R * SIN(PHI) IF X >= XC + (Y - YC) * TAN(DLTA) THEN HUE = 14 ELSE HUE = 9 PSET (X1, Y), 0 PSET (X, Y), HUE NEXT K AMPOLD(J) = AMP(J) NEXT J REM WHILE INKEY$ = "": WEND CIRCLE (XSUN, YSUN), 10, 0 PAINT (XSUN, YSUN), 0 CIRCLE (XSPOT, YC), RSPOT, 0 PAINT (XSPOT, YC), 0 CIRCLE (XC, YC), R + 2, 5 CIRCLE (XC, YC), R + 1, 5 HUENP = 7.5 + SGN(DLTA) * 6.5 HUESP = 7.5 - SGN(DLTA) * 6.5 LINE (XC - 1, YC - R - 3)-(XC + 1, YC - R - 8), HUENP, BF LINE (XC - 1, YC + R + 3)-(XC + 1, YC + R + 8), HUESP, BF NEXT I NEXT ROT END 1000 REM PRINT MONTH NMON = INT((ROT + 5) / 8) MOD 12 + 1 LOCATE 16 - 8 * SIN(PI * (NMON - 1) / 6), 62: PRINT M$(NMON) LOCATE 16 - 8 * SIN(PI * (NMON - 2) / 6), 62: PRINT " " RETURN