10
20
30 MODE2:COLOUR15
31
32
40 PRINTTAB(6)"ANIMATION":VDU5
50 PROCsphere(150,900,100,-PI/6)
60 PROCsphere(1190,945,75,-5*PI/4)
70 PROCsphere(620,512,400,9*PI/8)
80 PROCsphere(200,-292,900,PI/12)
90 PROCstars:PROCpath
100 VDU19,1,3;0;19,2,1;0;19,15,10;0;29,0;0;
110 FORI%=9TO14:VDU19,I%,0;0;:NEXT
120 REPEAT
130 FORI%=3TO8
140 J%=I%-1:IF J%=2 J%=8
150 VDU19,J%,1;0;19,I%,3;0;
160 VDU19,J%+6,0;0;19,I%+6,7;0;
170 K9=INKEY(5)
180 NEXT
190 UNTILFALSE
200 DEF PROCsphere(X%,Y%,R%,Tilt)
210 VDU18;2,29,X%;Y%;:MOVE0,R%
220 FORPhi=0TO6.4 STEP .15
230 MOVE0,0:PLOT85,R%*SIN Phi,R%*COS Phi
240 NEXT
250 Col%=3
260 FORPhi=0TO3.1 STEP.1
270 GCOL0,Col%
280 PROCarc(R%*COSPhi,R%,0,PI/2+Tilt,PI/2)
290 Col%=Col%+1:IFCol%=9Col%=3
300 NEXT
310 GCOL0,1
320 FORTheta=.5TO2.5 STEP.5
330 PROCarc(-R%/4*SINTheta,R%*SINTheta,R%*COSTheta,Tilt,1.5)
340 NEXT
350 ENDPROC
360 DEF PROCarc(H%,W%,D%,Alpha,Beta)
370 S=SIN Alpha:C=COS Alpha
380 X%=W%*SIN Beta:Y%=D%+H%*COS Beta
390 MOVE C*X%+S*Y%,C*Y%-S*X%
400 FORGamma=-Beta TO Beta+.1STEP.25
410 X%=-W%*SIN Gamma:Y%=D%+H%*COS Gamma
420 DRAWC*X%+S*Y%,C*Y%-S*X%
430 NEXT
440 ENDPROC
450 DEF PROCpath
460 X%=1179:Y%=130:R%=100:Col%=9
470 FORTilt=3.6TO0 STEP-.15
480 GCOL0,Col%:PROCsquare(X%,Y%,R%,Tilt)
490 X%=.9*X%+80:Y%=.5*Y%+440:R%=R%*.92
500 Col%=Col%-1:IF Col%=8 Col%=14
510 NEXT
520 ENDPROC
530 DEF PROCsquare(X%,Y%,R%,Tilt)
540 VDU29,X%;Y%;
550 S=SIN Tilt:C=COS Tilt
560 MOVER%*(C+S),R%*(C-S)
570 DRAWR%*(C-S),R%*(-C-S):DRAW R%*(-C-S),R%*(S-C)
580 DRAWR%*(S-C),R%*(C+S):DRAW R%*(C+S),R%*(C-S)
590 ENDPROC
600 DEF PROCstars
610 VDU29,0;0;
620 FORI%=0TO40
630 X%=1279:Y%=25*I%:X1%=-8*(2+RND(2)):Y1%=3-RND(5):Col%=RND(6)+8
635 X%=X%+32
640 REPEAT Col%=Col%-1:IF Col%=8 Col%=14
650 P%=POINT(X%,Y%):IF P%=0 GCOL0,Col%:PLOT69,X%,Y%
660 X%=X%+X1%:Y%=Y%+Y1%
670 UNTILX%<1
680 NEXT
690 ENDPROC