10 'SHUTTLE - 24 APR 96 rev.22 NOV 1998 20 CLS 30 KEY OFF 40 COMMON EX$ 50 IF EX$=""THEN EX$="exit" 60 X=0:Y=0:Z=0:X3=0:Y3=0:Z3=0:AM=0:BM=0:CM=0:DM=0:EM=0:FM=0:GM=0:HM=0:IM=0:D=0:P=0:B=0:H=0:U=0:V=0:U1=0:V1=0 70 C=14 'start colour 80 DIM V(300,3),E(300) 90 PI=3.141593 100 CLS 110 READ NV 120 FOR P=1 TO NV 130 READ V(P,1),V(P,2),V(P,3) 140 Q=.11 150 V(P,1) = Q * V(P,1) 160 V(P,2) = Q * V(P,2) 170 V(P,3) = Q * V(P,3) 180 NEXT P 190 READ NE 200 FOR E=1 TO NE 210 READ E(E) 220 NEXT E 230 SCREEN 8 240 D=120 250 LOCATE 1,1 260 P0=-2:P1=-2:P2=-2 270 'INPUT"INPUT ANY 3 ANGLES (X,Y,Z)"; P0,P1,P2 280 T1=TIMER '........start cycle 290 C=C+1:IF C=16 THEN C=8:GOTO 270 300 COLOR C,0 305 COLOR 11,0 310 IF SGN(P0)<>0 THEN 330 320 T2=TIMER:IF T2-T1<2 THEN 320 330 P0=P0+2 340 P1=P1+2 350 P2=P2+2 360 T2=TIMER:IF T2""THEN SCREEN 0:CHAIN EX$ 390 P=2*PI * P0 / 255 - PI 400 B=2*PI * P2 / 255 410 H=2*PI * P1 / 255 420 GOSUB 560 430 XV = -D * CP * SH: REM ---SEE SUB.--- 440 YV = -D * CP * CH 450 ZV = -D * SP 460 REM ---PROJECT NE POINTS--- 470 FOR E=1 TO NE 480 X = V( ABS ( E ( E ) ), 1 ) 490 Y = V( ABS ( E ( E ) ), 2 ) 500 Z = V( ABS ( E ( E ) ), 3 ) 510 GOSUB 690 520 IF E(E)>0 THEN LINE (U1*2+75,V1+20)-(U*2+75,V+20) 530 U1 = U: V1 = V 540 NEXT E 550 IF P0=254 THEN 250 ELSE GOTO 280 560 CH = COS (H): SH = SIN (H) 570 CP = COS (P): SP = SIN (P) 580 CB = COS (B): SB = SIN (B) 590 AM = CB * CH - SH * SP * SB 600 BM = -CB * SH - SP * CH * SB 610 CM = CP * SB 620 DM = SH * CP 630 EM = CP * CH 640 FM = SP 650 GM = -CH * SB - SH * SP * CB 660 HM = SH * SB - SP * CH * CB 670 IM = CP * CB 680 RETURN 690 X = X - XV 700 Y = Y - YV 710 Z = Z - ZV 720 X3 = AM * X + BM * Y + CM * Z 730 Y3 = DM * X + EM * Y + FM * Z 740 Z3 = GM * X + HM * Y + IM * Z 750 U = 135 + 13.5 * D * X3 / Y3 760 V = 80 - 11.5 * D * Z3 / Y3 770 RETURN 780 DATA 124 790 DATA 0,-2.2,46,1.5,-2.6,46,2.2,-4.6,46,1.7,-6.5,46,0,-6.7,46 800 DATA -1.7,-6.5,46,-2.2,-4.6,46,-1.5,-2.6,46 810 DATA 0,-.8,43,2.8,-1.5,43,4,-4.5,43,3,-7.2,43,0,-8,43,-3,-7.2,43 820 DATA -4,-4.5,43,-2.8,-1.5,43 830 DATA 0,1.7,38,4.6,0,38,5.8,-4.4,38,4,-8.2,38,0,-9,38,-4,-8.2,38 840 DATA -5.8,-4.4,38,-4.6,0,38 850 DATA 0,4,32.5,4.5,1,32.5,5.8,-4.6,32.5,4,-9,32.5,0,-9.5,32.5,-4,-9,32.5 860 DATA -5.8,-4.6,32.5,-4.5,1,32.5 870 DATA 0,8,26.3,3.5,7,26.3,7.8,2,26.3,8,-7,26.3,0,-9.8,26.3,-8,-7,26.3 880 DATA -7.8,2,26.3,-3.5,7,26.3 890 DATA 0,8,21.5,3.8,7.5,21.5,8,3,21.5,8,-8,21.5,0,-9.8,21.5,-8,-8,21.5 900 DATA -8,3,21.5,-3.8,7.5,21.5 910 DATA 0,8,14,4.7,7,14,8,4,14,8,-8.7,14,0,-10,14,-8,-8.7,14,-8,4,14 920 DATA -4.7,7,14 930 DATA 0,8,4,4.7,7,4,8,4,4,8,-8.7,4,0,-10,4,-8,-8.7,4,-8,4,4 940 DATA -4.7,7,4 950 DATA 0,8,-12,4.7,7,-12,8,4,-12,8,-8.7,-12,0,-10,-12,-8,-8.7,-12,-8,4,-12 960 DATA -4.7,7,-12 970 DATA 0,8,-27.3,4.7,7,-27.3,8,4,-27.3,8,-8.7,-27.3,0,-10,-27.3,-8,-8.7,-27.3 980 DATA -8,4,-27.3,-4.7,7,-27.3 990 DATA 0,8,-35.6,4.7,7,-35.6,8,4,-35.6,8,-8.7,-35.6,0,-10,-35.6,-8,-8.7,-35.6 1000 DATA -8,4,-35.6,-4.7,7,-35.6 1010 DATA 0,9,-43,2,8.5,-43,8.8,1.5,-43,9,-10,-43,0,-10.8,-43,-9,-10,-43 1020 DATA -8.8,1.5,-43,-2,8.5,-43 1030 DATA 0,9.5,-48,2,9.3,-48,9.2,1.5,-48,10,-10,-48,0,-10.2,-48,-10,-10,-48 1040 DATA -9.2,1.5,-48,-2,9.3,-48 1050 DATA 8.7,-8.7,21,15,-8.7,-16,35,-10,-36,35,-10,-40 1060 DATA -8.7,-8.7,21,-15,-8.7,-16,-35,-10,-36,-35,-10,-40 1070 DATA 0,13,-37,0,33,-60,0,33,-69,0,14,-60 1080 DATA 6,11,-43,6,11,-48,11,5,-43,11,5,-48,-6,11,-43,-6,11,-48,-11,5,-43 1090 DATA -11,5,-48 1100 DATA 259 1110 DATA -1,2,3,4,5,6,7,8,1,-9,10,11,12,13,14,15,16,9,-17,18,19,20,21,22,23,24,17 1120 DATA -25,26,27,28,29,30,31,32,25,-33,34,35,36,37,38,39,40,33 1130 DATA -41,42,43,44,45,46,47,48,41,-49,50,51,52,53,54,55,56,49 1140 DATA -57,58,59,60,61,62,63,64,57,-65,66,67,68,69,70,71,72,65 1150 DATA -73,74,75,76,77,78,79,80,73,-81,82,83,84,85,86,87,88,81 1160 DATA -89,90,91,92,93,94,95,96,89,-97,98,99,100,101,102,103,104,97 1170 DATA -1,9,17,25,33,41,49,57,65,73,81,89,97 1180 DATA -2,10,18,26,34,42,50,58,66,74,82,90,98 1190 DATA -3,11,19,27,35,43,51,59,67,75,83,91,99 1200 DATA -4,12,20,28,36,44,52,60,68,76,84,92,100 1210 DATA -5,13,21,29,37,45,53,61,69,77,85,93,101 1220 DATA -6,14,22,30,38,46,54,62,70,78,86,94,102 1230 DATA -7,15,23,31,39,47,55,63,71,79,87,95,103 1240 DATA -8,16,24,32,40,48,56,64,72,80,88,96,104 1250 DATA -44,105,106,107,108,92 1260 DATA -46,109,110,111,112,94 1270 DATA -81,113,114,115,116,89 1280 DATA -82,117,118,-83,119,120 1290 DATA -87,121,122,-88,123,124 1300 DATA -117,119,-121,123,-118,120,-122,124