home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / GLEN / GRAPHING.ZIP / GRAPHING.BAS < prev   
BASIC Source File  |  1988-12-17  |  3KB  |  102 lines

  1. 5 REM ********* EQUATIONS IN LINES 80,6015,6115 ****************
  2. 10 SCREEN 1
  3. 11 COLOR 8,0
  4. 12 Q=4:W=5:J=.1:XMIN=-8:YMIN=-5:XMAX=8:YMAX=5:SX=1:SY=1:SF=0
  5. 15 WINDOW (XMIN*W,YMIN*W)-(XMAX*W,YMAX*W)
  6. 20 LINE (XMIN*W,0)-(XMAX*W,0),2
  7. 30 LINE (0,YMIN*W)-(0,YMAX*W),2
  8. 35 XC=0
  9. 40 IF SF=0 THEN SS=(W/(XMAX+(.0001*SX*SY))/7)/(SX*SY)
  10. 70 FOR X=XMIN TO XMAX STEP SS
  11. 80 Y=SIN(X)+EXP(-ABS(X)/5)
  12. 82 H$=INKEY$
  13. 83 IF H$<>"" THEN 900
  14. 85 IF Y>YMAX*W THEN 100
  15. 86 IF Y<YMIN*W THEN 100
  16. 90 PSET(X*SX,Y*SY),1
  17. 100 NEXT X
  18. 900 GOTO 6000
  19. 1000 LOCATE 1,1:PRINT"                                             "
  20. 1001 LOCATE 1,1:PRINT"X=";XC;" Y=";YC
  21. 1002 PD=1
  22. 1004 I$=INKEY$
  23. 1005 PSET(XC*SX,YC*SY),3:PSET(XC*SX,YC*SY),2
  24. 1006 IF I$="" THEN 1004
  25. 1007 SW=SS*10*W*J
  26. 1010 IF I$=CHR$(0)+CHR$(77) THEN 6000
  27. 1011 IF I$=CHR$(0)+CHR$(75) THEN 6100
  28. 1012 IF I$=CHR$(0)+CHR$(79) THEN END
  29. 1016 LOCATE 1,1
  30. 1017 PRINT"                                       "
  31. 1018 PRINT"                                       "
  32. 1019 LOCATE 1,1
  33. 1020 IF I$="M" THEN 1100
  34. 1040 IF I$="Q" THEN 1300
  35. 1045 IF I$="W" THEN 1400
  36. 1050 IF I$="X" THEN 1200
  37. 1060 IF I$="Y" THEN 1250
  38. 1070 IF I$="S" THEN 1500
  39. 1090 IF I$="J" THEN 1600
  40. 1095 GOTO 1000
  41. 1100 PRINT"OLD X MIN";XMIN
  42. 1101 INPUT"MINIMUM VALUE FOR X";XMIN
  43. 1110 PRINT"OLD X MAX";XMAX
  44. 1111 INPUT"MAXIMUM VALUE FOR X";XMAX
  45. 1120 GOTO 5000
  46. 1200 PRINT"X AXIS IS NOW STRETCHED";SX
  47. 1210 INPUT"STRETCH X";SX
  48. 1220 GOTO 5000
  49. 1250 PRINT"Y AXIS IS NOW STRETCHED";SY
  50. 1260 INPUT"STRETCH Y";SY
  51. 1270 GOTO 5000
  52. 1300 REM QUADRANTS TO DISPLAY
  53. 1310 INPUT"HOW MANY QUADRANTS";NQ
  54. 1320 IF NQ=4 THEN XMIN=-8:XMAX=8:YMIN=-5:YMAX=5
  55. 1322 IF NQ=3 THEN 1310
  56. 1323 IF NQ=2 THEN GOSUB 1340:NQ=NQ-1
  57. 1330 IF NQ=1 THEN GOSUB 1340
  58. 1335 IF XMIN=0 AND XMAX=0 THEN XMIN=-8:XMAX=8
  59. 1336 IF YMIN=0 AND YMAX=0 THEN YMIN=-5:YMAX=5
  60. 1337 GOTO 5000
  61. 1340 INPUT"QUADRANT";Q
  62. 1350 IF Q=1 THEN XMIN=0:YMIN=0
  63. 1360 IF Q=2 THEN YMIN=0:XMAX=0
  64. 1370 IF Q=3 THEN YMAX=0:XMAX=0
  65. 1380 IF Q=4 THEN YMAX=0:XMIN=0
  66. 1390 RETURN
  67. 1400 PRINT"OLD WINDOW SIZE";W
  68. 1401 INPUT"NEW WINDOW SIZE";W
  69. 1430 WINDOW (-8*W,-5*W)-(8*W,8*W)
  70. 1440 GOTO 5000
  71. 1500 PRINT"OLD STEP SIZE";SS
  72. 1501 INPUT"NEW STEP SIZE";SS
  73. 1502 INPUT"USE COMPUTED OR NEW STEP SIZE";Q$
  74. 1503 IF Q$="C" THEN SF=0
  75. 1504 IF Q$="N" THEN SF=1
  76. 1510 GOTO 5000
  77. 1600 PRINT"OLD JUMP SIZE";J
  78. 1601 INPUT"ENTER NEW JUMP SIZE";J
  79. 1610 GOTO 1000
  80. 5000 PRINT"WINDOW";W
  81. 5001 PRINT"JUMP";J
  82. 5002 PRINT"STEP SIZE";SS
  83. 5003 PRINT Q" QUADRANTS"
  84. 5004 PRINT"X-MIN X-MAX";XMIN;XMAX
  85. 5005 PRINT"X AXIS STRETCHED";SX
  86. 5006 PRINT"Y AXIS STRETCHED";SY
  87. 5008 INPUT"MORE CHANGES";MC$
  88. 5010 IF MC$<>"N" THEN 1004
  89. 5015 CLS
  90. 5018 PD=0
  91. 5020 GOTO 15
  92. 6000 XC=XC+SW
  93. 6010 IF PD>0 THEN PSET((XC-SW)*SX,YC*SY),1
  94. 6015 YC=SIN(XC)+EXP(-ABS(XC)/5)
  95. 6020 PSET(XC*SX,YC*SY),2
  96. 6030 GOTO 1000
  97. 6100 XC=XC-SW
  98. 6110 IF PD>0 THEN PSET((XC+SW)*SX,YC*SY),1
  99. 6115 YC=SIN(XC)+EXP(-ABS(XC)/5)
  100. 6120 PSET(XC*SX,YC*SY),2
  101. 6130 GOTO 1000
  102.