home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frostbyte's 1980s DOS Shareware Collection
/
floppyshareware.zip
/
floppyshareware
/
GLEN
/
GRAPHING.ZIP
/
GRAPHING.BAS
< prev
Wrap
BASIC Source File
|
1988-12-17
|
3KB
|
102 lines
5 REM ********* EQUATIONS IN LINES 80,6015,6115 ****************
10 SCREEN 1
11 COLOR 8,0
12 Q=4:W=5:J=.1:XMIN=-8:YMIN=-5:XMAX=8:YMAX=5:SX=1:SY=1:SF=0
15 WINDOW (XMIN*W,YMIN*W)-(XMAX*W,YMAX*W)
20 LINE (XMIN*W,0)-(XMAX*W,0),2
30 LINE (0,YMIN*W)-(0,YMAX*W),2
35 XC=0
40 IF SF=0 THEN SS=(W/(XMAX+(.0001*SX*SY))/7)/(SX*SY)
70 FOR X=XMIN TO XMAX STEP SS
80 Y=SIN(X)+EXP(-ABS(X)/5)
82 H$=INKEY$
83 IF H$<>"" THEN 900
85 IF Y>YMAX*W THEN 100
86 IF Y<YMIN*W THEN 100
90 PSET(X*SX,Y*SY),1
100 NEXT X
900 GOTO 6000
1000 LOCATE 1,1:PRINT" "
1001 LOCATE 1,1:PRINT"X=";XC;" Y=";YC
1002 PD=1
1004 I$=INKEY$
1005 PSET(XC*SX,YC*SY),3:PSET(XC*SX,YC*SY),2
1006 IF I$="" THEN 1004
1007 SW=SS*10*W*J
1010 IF I$=CHR$(0)+CHR$(77) THEN 6000
1011 IF I$=CHR$(0)+CHR$(75) THEN 6100
1012 IF I$=CHR$(0)+CHR$(79) THEN END
1016 LOCATE 1,1
1017 PRINT" "
1018 PRINT" "
1019 LOCATE 1,1
1020 IF I$="M" THEN 1100
1040 IF I$="Q" THEN 1300
1045 IF I$="W" THEN 1400
1050 IF I$="X" THEN 1200
1060 IF I$="Y" THEN 1250
1070 IF I$="S" THEN 1500
1090 IF I$="J" THEN 1600
1095 GOTO 1000
1100 PRINT"OLD X MIN";XMIN
1101 INPUT"MINIMUM VALUE FOR X";XMIN
1110 PRINT"OLD X MAX";XMAX
1111 INPUT"MAXIMUM VALUE FOR X";XMAX
1120 GOTO 5000
1200 PRINT"X AXIS IS NOW STRETCHED";SX
1210 INPUT"STRETCH X";SX
1220 GOTO 5000
1250 PRINT"Y AXIS IS NOW STRETCHED";SY
1260 INPUT"STRETCH Y";SY
1270 GOTO 5000
1300 REM QUADRANTS TO DISPLAY
1310 INPUT"HOW MANY QUADRANTS";NQ
1320 IF NQ=4 THEN XMIN=-8:XMAX=8:YMIN=-5:YMAX=5
1322 IF NQ=3 THEN 1310
1323 IF NQ=2 THEN GOSUB 1340:NQ=NQ-1
1330 IF NQ=1 THEN GOSUB 1340
1335 IF XMIN=0 AND XMAX=0 THEN XMIN=-8:XMAX=8
1336 IF YMIN=0 AND YMAX=0 THEN YMIN=-5:YMAX=5
1337 GOTO 5000
1340 INPUT"QUADRANT";Q
1350 IF Q=1 THEN XMIN=0:YMIN=0
1360 IF Q=2 THEN YMIN=0:XMAX=0
1370 IF Q=3 THEN YMAX=0:XMAX=0
1380 IF Q=4 THEN YMAX=0:XMIN=0
1390 RETURN
1400 PRINT"OLD WINDOW SIZE";W
1401 INPUT"NEW WINDOW SIZE";W
1430 WINDOW (-8*W,-5*W)-(8*W,8*W)
1440 GOTO 5000
1500 PRINT"OLD STEP SIZE";SS
1501 INPUT"NEW STEP SIZE";SS
1502 INPUT"USE COMPUTED OR NEW STEP SIZE";Q$
1503 IF Q$="C" THEN SF=0
1504 IF Q$="N" THEN SF=1
1510 GOTO 5000
1600 PRINT"OLD JUMP SIZE";J
1601 INPUT"ENTER NEW JUMP SIZE";J
1610 GOTO 1000
5000 PRINT"WINDOW";W
5001 PRINT"JUMP";J
5002 PRINT"STEP SIZE";SS
5003 PRINT Q" QUADRANTS"
5004 PRINT"X-MIN X-MAX";XMIN;XMAX
5005 PRINT"X AXIS STRETCHED";SX
5006 PRINT"Y AXIS STRETCHED";SY
5008 INPUT"MORE CHANGES";MC$
5010 IF MC$<>"N" THEN 1004
5015 CLS
5018 PD=0
5020 GOTO 15
6000 XC=XC+SW
6010 IF PD>0 THEN PSET((XC-SW)*SX,YC*SY),1
6015 YC=SIN(XC)+EXP(-ABS(XC)/5)
6020 PSET(XC*SX,YC*SY),2
6030 GOTO 1000
6100 XC=XC-SW
6110 IF PD>0 THEN PSET((XC+SW)*SX,YC*SY),1
6115 YC=SIN(XC)+EXP(-ABS(XC)/5)
6120 PSET(XC*SX,YC*SY),2
6130 GOTO 1000