Listing of file='PLOT.BAS;01' on disk='vmedia/games-sector.ccvf'
100 DIM C(20,2),CT(20,2),L(20),M$(5),LNK(20,1),PEN(20) 105 P= .017453 110 N= - 1 111 FOR I= 0TO 5:READ M$(I):NEXT I 113 DATA "NEW VECTOR NO>","A+B","A.B","A^B","DRAW","EMPTY VECTOR" 115 PLOT 12 120 PLOT 18:PRINT "COOSE FROM THE FOLLOWING OPTIONS :" 130 PRINT 140 PRINT "1. SPECIFY VECTOR" 150 PRINT "2. VECTOR ADDITION" 160 PRINT "3. SCALAR PRODUCT" 170 PRINT "4. VECTOR PRODUCT" 180 PRINT "5. DRAW" 181 PRINT "6. ENTER CUBE" 183 PRINT "7. TRANSLATION" 185 PRINT "8. ROTATION" 187 PRINT "9. MAGNIFY" 190 PRINT 200 INPUT "OPTION REQUIRED>";O 210 ON OGOSUB 1000,2000,3000,4000,5000,6000,7000,8000,9000 215 PRINT 220 INPUT "HIT RETURN TO CONTINUE";A$ 225 PLOT 12 230 GOTO 120 1000 PLOT 12 1010 PRINT SPC( 15);"VECTOR SPECIFICATION ROUTINE" 1030 PRINT 1035 FOR I= 0TO 20:N= N+ 1 1040 PRINT "VECTOR NO >";N; 1050 INPUT " ENTER COORDINATES (X,Y,Z) >";C(N,0),C(N,1),C(N,2) 1060 GOSUB 10000:IF L(N)= 0GOTO 1080 1065 GOSUB 14000 1070 NEXT I 1080 PRINT :LST= 0 1090 FOR I= 0TO 20 1100 INPUT "CONNECT VECTOR NO>";LNK(I,0) 1102 PRINT TAB( 20):PLOT 28:PRINT " TO>";:INPUT "";LNK(I,1) 1104 PRINT TAB( 29):PLOT 28:PRINT "STOP(Y/N)";:INPUT N$ 1106 IF N$= "Y"GOTO 1140 1110 LST= LST+ 1 1130 NEXT I 1140 RETURN 2000 PLOT 12:PRINT SPC( 15);"VECTOR ADDITION ROUTINE" 2010 GOSUB 11000 2020 N= N+ 1 2030 INPUT "ADD OR SUBTRACT (+/-) >";A$ 2035 FL= 1 2040 IF A$= "-"THEN FL= - 1 2080 FOR I= 0TO 2 2090 C(N,I)= C(A,I)+ FL* C(B,I) 2100 NEXT I 2102 GOSUB 10000:GOSUB 12000 2110 RETURN 3000 REM 3010 PLOT 12:PRINT SPC( 15);"SCALAR PRODUCT" 3020 GOSUB 11000 3050 N= N+ 1 3060 FOR I= 0TO 2 3070 C(N,I)= C(A,I)* C(B,I) 3080 NEXT I 3090 GOSUB 10000 3100 GOSUB 12000 3120 RETURN 4000 REM 4010 REM 4020 PLOT 12 4030 PRINT SPC( 15);"VECTOR PRODUCT" 4040 GOSUB 11000 4050 N= N+ 1 4060 C(N,0)= C(A,1)* C(B,2)- C(A,2)* C(B,1) 4070 C(N,1)= C(A,3)* C(B,0)- C(A,0)* C(B,3) 4080 C(N,2)= C(A,0)* C(B,1)- C(A,1)* C(B,0) 4090 GOSUB 10000 4100 GOSUB 12000 4110 RETURN 5000 REM 5010 PLOT 12 5020 FOR I= 0TO LST 5030 A= LNK(I,0):B= LNK(I,1):PLOT PEN(I) 5040 PLOT 2,C(A,0),C(A,1),242,C(B,0),C(B,1),255 5050 NEXT I 5060 PLOT 17:RETURN 6000 RESTORE 6100 6010 FOR N= 0TO 7 6020 READ C(N,0),C(N,1),C(N,2) 6030 NEXT N 6050 FOR I= 0TO 11 6060 READ LNK(I,0),LNK(I,1),PEN(I) 6070 NEXT I 6080 LST= 11 6090 RETURN 6100 DATA 34,34,34,94,34,34,94,94,34,34,94,34,34,94,94,94,94,94,94,34,94,34,34,94 6110 DATA 0,1,18,1,6,18,7,0,18,1,2,18,0,3,18,5,2,18,2,3,18,3,4,18,6,7,17,7,4,17,4,5,17,5,6,17 7000 REM 7010 PLOT 12 7020 PRINT SPC( 15)"TRANSLATION OF AXES" 7025 INPUT "NO OF STEPS >";SN 7030 GOSUB 13000 7035 FOR J= 1TO SN 7040 FOR I= 0TO N 7050 C(I,0)= C(I,0)+ A 7060 C(I,1)= C(I,1)+ B 7070 C(I,2)= C(I,2)+ C 7080 NEXT I 7090 GOSUB 5000 7100 NEXT J 7110 RETURN 8000 REM 8010 PLOT 12 8020 PRINT SPC( 15)"ROTATION OF AXES" 8030 INPUT "NO OF STEPS >";SN 8031 PRINT "ENTER ANGLES IN DEGREES" 8040 GOSUB 13000 8041 A= A* P:B= B* P:C= C* P 8042 AC= COS (A):AS= SIN (A):BC= COS (B):BS= SIN (B):CC= COS (C):CS= SIN (C) 8050 F9= AC* CC:F7= - AS* CC:F4= AC* CS:F2= - AS* CS 8060 FOR K= 1TO SN 8070 FOR I= 0TO N:FOR J= 0TO 2:CT(I,J)= C(I,J)- 64:NEXT J:NEXT I 8080 FOR I= 0TO N 8090 TE= CT(I,2)* BS 8100 C(I,0)= CT(I,0)* (F9* BC+ F2)+ CT(I,1)* (F4- F7* BC)- TE* CC 8110 C(I,1)= CT(I,0)* (F7- F4* BC)+ CT(I,1)* (F2* BC+ F9)+ TE* CS 8120 C(I,2)= CT(I,0)* AC* BS+ CT(I,1)* AS* BS+ CT(I,2)* BC 8130 NEXT I 8135 FOR I= 0TO N:FOR J= 0TO 2:C(I,J)= C(I,J)+ 64:NEXT J:NEXT I 8140 GOSUB 5000 8150 NEXT K 8160 RETURN 9000 REM 9010 PLOT 12 9020 PRINT SPC( 15)"MAGNIFICATION/SHRINKAGE" 9030 PRINT 9040 INPUT "ENTER MAG FACTOR >";X 9050 FOR I= 0TO N 9060 FOR J= 0TO 2 9070 C(I,J)= C(I,J)* X 9080 IF C(I,J)> 127THEN PRINT "FACTOR TOO LARGE":GOTO 9010 9090 NEXT J 9100 NEXT I 9110 GOSUB 5000 9120 RETURN 10000 L(N)= SQR (C(N,0)* C(N,0)+ C(N,1)* C(N,1)+ C(N,2)* C(N,2)) 10010 RETURN 11000 PRINT :INPUT "FIRST VECTOR NO >";A 11010 INPUT "SECOND VECTOR NO >";B 11020 IF A> NOR B> NTHEN PRINT "VECTOR NOT FOUND":GOTO 11000 11030 RETURN 12000 PRINT :PRINT M$(O- 1);" = VECTOR NO";N 12010 PRINT "LENGTH =";L(N) 12020 RETURN 13000 PRINT 13010 INPUT "ABOUT X-AXIS >";A 13020 INPUT "ABOUT Y-AXIS >";B 13030 INPUT "ABOUT Z-AXIS >";C 13040 RETURN 14000 REM 14010 PLOT 28,11 14020 PRINT M$(O- 1);N;" =";C(I,0);" I+";C(I,1);" J+";C(I,2);" K" 14030 RETURN