10 ONERRORCHAIN"!MENU" 20 REM ***ANIMATION **** 30 REM *STA JULY 1982 ***** 40 MODE 2:COLOUR 15 50 PRINT TAB(6)"ANIMATION":VDU 5 60 PROCsphere(150,900,100,-PI/6) 70 PROCsphere(1190,945,75,-5*PI/4) 80 PROCsphere(620,512,200,7*PI/6) 90 PROCsphere(200,-292,400,0) 100 PROCstars:PROCpath 110 VDU 19,1,6;0;19,2,4;0;19,15,10;0;29,0;0; 120 FOR I%=9 TO 14:VDU 19,I%,0;0;:NEXT 130 REPEAT 140 FOR I%=3 TO 8 150 J%=I%-1:IF J%=2 J%=8 160 VDU 19,J%,4;0;19,I%,6;0; 170 VDU 19,J%+6,0;0;19,I%+6,3;0; 180 K9=INKEY(5) 190 NEXT 200 UNTIL FALSE 210 DEF PROCsphere(X%,Y%,R%,Tilt) 220 VDU 18;2,29,X%;Y%;:MOVE 0,R% 230 FOR Phi=0 TO 6.4 STEP .15 240 MOVE 0,0:PLOT 85,R%*SIN Phi,R%*COS Phi 250 NEXT 260 Col%=3 270 FOR Phi=0 TO 3.1 STEP .1 280 GCOL 0,Col% 290 PROCarc(R%*COS Phi,R%,0,PI/2+Tilt,PI/2) 300 Col%=Col%+1:IF Col%=9 Col%=3 310 NEXT 320 GCOL 0,1 330 FOR Theta=.5 TO 2.5 STEP .5 340 PROCarc(-R%/4*SIN Theta,R%*SIN Theta,R%*COS Theta,Tilt,1.5) 350 NEXT 360 ENDPROC 370 DEF PROCarc(H%,W%,D%,Alpha,Beta) 380 S=SIN Alpha:C=COS Alpha 390 X%=W%*SIN Beta:Y%=D%+H%*COS Beta 400 MOVE C*X%+S*Y%,C*Y%-S*X% 410 FOR Gamma=-Beta TO Beta+.1 STEP .25 420 X%=-W%*SIN Gamma:Y%=D%+H%*COS Gamma 430 DRAW C*X%+S*Y%,C*Y%-S*X% 440 NEXT 450 ENDPROC 460 DEF PROCpath 470 X%=1179:Y%=130:R%=100:Col%=9 480 FOR Tilt=0 TO 1.2 STEP .05 490 GCOL 0,Col%:PROCsquare(X%,Y%,R%,Tilt) 500 X%=.9*X%+80:Y%=.5*Y%+440:R%=R%*.92 510 Col%=Col%+1:IF Col%=15 Col%=9 520 NEXT 530 ENDPROC 540 DEF PROCsquare(X%,Y%,R%,Tilt) 550 VDU 29,X%;Y%; 560 S=SIN Tilt:C=COS Tilt 570 MOVE R%*(C+S),R%*(C-S) 580 DRAW R%*(C-S),R%*(-C-S):DRAW R%*(-C-S),R%*(S-C) 590 DRAW R%*(S-C),R%*(C+S):DRAW R%*(C+S),R%*(C-S) 600 ENDPROC 610 DEF PROCstars 620 VDU 29,0;0; 630 FOR I%=0 TO 40 640 X%=1279:Y%=25*I%:X1%=-8*(2+RND(2)):Y1%=1-RND(3):Col%=RND(6)+8 650 REPEAT Col%=Col%+1:IF Col%=15 Col%=9 660 P%=POINT(X%,Y%):IF P%=0 GCOL 0,Col%:PLOT 69,X%,Y% 670 X%=X%+X1%:Y%=Y%+Y1% 680 UNTIL P%<0 690 NEXT 700 ENDPROC