home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib26a.dsk / NOVEMBER.1985 / DIRECTION.FIELD.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  73 lines

  1. 1  REM **********************
  2. 2  REM *  DIRECTION.FIELD   *
  3. 3  REM * BY WHITNEY HARRIS  *
  4. 4  REM * COPYRIGHT (C) 1985 *
  5. 5  REM * BY MICROSPARC, INC *
  6. 6  REM * CONCORD, MA  01742 *
  7. 7  REM **********************
  8. 140  HOME : VTAB 8: PRINT "DIRECTION.FIELD": PRINT "BY WHITNEY HARRIS": PRINT "COPYRIGHT (C) 1985 BY MICROSPARC, INC."
  9. 150  VTAB 15: HTAB 1: PRINT "TO CHANGE FUNCTION, STOP THE PROGRAM": PRINT " AND CHANGE THE FUNCION IN LINE 340.": PRINT " CURRENTLY LINE 340 IS:": LIST 340
  10. 160  VTAB 22: HTAB 1: PRINT "PRESS <RETURN> TO CONTINUE": PRINT "PRESS <ESC> TO QUIT";: GET Z$: PRINT : IF Z$ =  CHR$(27)  THEN  HOME : LIST 340: END 
  11. 170  REM   THIS APPLE PROGRAM PLOTS A
  12. 180  REM   DIRECTION LINE SEGMENT AT EACH
  13. 190  REM   OF 16*27 SCREEN LOCATIONS.
  14. 200  REM   WE EVALUATE A GIVEN FUNCTION
  15. 210  REM   M(X,Y), TO OBTAIN THE SLOPE
  16. 220  REM   OF THE SEGMENT AT (X,Y).
  17. 230  REM   A PATH PASSING SMOOTHLY
  18. 240  REM   THROUGH DIRECTED SEGMENTS
  19. 250  REM   (AS TANGENTS TO THE PATH)
  20. 260  REM   SOLVES THE DIFFERENTIAL
  21. 270  REM   EQUATION  DY/DX=M(X,Y) .
  22. 280  REM ********************************  
  23. 290  REM   BELOW, TYPE DESIRED SCALE
  24. 300  REM   CONSTANT, THEN DESIRED
  25. 310  REM   FUNCTION FN M(Y) IN LINE 340.         
  26. 320  REM ********************************     
  27. 330  LET C = 50
  28. 340  DEF  FN M(Y) = Y ^2 -X ^2
  29. 350  REM ********************************
  30. 360  REM   PLOT AXES AND PRINT SCALE INFORMATION.
  31. 370  HGR : HCOLOR= 3: HOME 
  32. 380  HPLOT 0,80 TO 279,80
  33. 390  HPLOT 140,0 TO 140,159
  34. 400  VTAB 22: PRINT "THE HORIZONTAL OR VERTICAL DISTANCE"
  35. 410  VTAB 23: PRINT "BETWEEN MIDPOINTS OF SEGMENTS IS:"
  36. 420  VTAB 24: PRINT  TAB( 14);10/C
  37. 430  REM ******************************** 
  38. 440  REM  THE  X,Y  COORDINATE SYSTEM HAS  
  39. 450  REM  ORIGIN AT SCREEN COORDINATES
  40. 460  REM  SX=140, SY=80, POSITIVE Y AXIS
  41. 470  REM  UP, AND AXES SCALED.
  42. 480  REM ******************************** 
  43. 490  REM  LOOPS TO MOVE ACROSS AND DOWN
  44. 500  REM  THEN LOOP TO PLOT SEGMENT IN
  45. 510  REM  9*9 BOX.  BX AND BY ARE LOCAL
  46. 520  REM  COORDINATES IN BOX AND NEED
  47. 530  REM  NOT BE SCALED.
  48. 540  REM ******************************** 
  49. 550  FOR SX = 5 TO 275  STEP 10
  50. 560  LET X = (SX -140)/C
  51. 570  FOR SY = 5 TO 155  STEP 10
  52. 580  LET Y = (80 -SY)/C
  53. 590  LET M =  FN M(Y)
  54. 600  REM  TEST FOR NEAR VERTICAL LINE.
  55. 610  IF  ABS(M) >4  THEN 740
  56. 620  FOR BX =  -4 TO 4
  57. 630  LET BY = M *BX
  58. 640  IF  ABS(BY) >4  THEN 710
  59. 650  REM ********************************  
  60. 660  REM  CHANGE FROM LOCAL TO PLOTTING
  61. 670  REM  COORDINATES PX,PY THEN PLOT.
  62. 680  REM ********************************    
  63. 690  LET PX = SX +BX:PY = SY -BY
  64. 700  HPLOT PX,PY
  65. 710  NEXT BX
  66. 720  GOTO 770
  67. 730  REM   LOOP TO PRINT VERTICAL LINE
  68. 740  FOR I =  -4 TO 4  STEP 2
  69. 750  HPLOT SX,SY +I
  70. 760  NEXT I
  71. 770  NEXT SY
  72. 780  NEXT SX
  73. 790  VTAB 24: HTAB 1: PRINT "PRESS <RETURN> WHEN READY TO QUIT";: GET Z$: PRINT : HOME : TEXT : LIST 340