home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / science / grmat30d.arj / GRAPHMAT.DOC < prev    next >
Text File  |  1992-01-27  |  78KB  |  1,539 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9. ========================================================================
  10.  
  11.   GGGG                       h                      t
  12.  G    G                      h                    ttttt
  13. G                            h                      t      i
  14. G  GGGG  rrrr   aaaa  pppp   hhhh   mmm mm    aaaa  t         cccc  aaaa
  15. G     G  r  r  a   a  p   p  h   h  m  m  m  a   a  t      i c     a   a
  16.  G    G  r     a   a  p   p  h   h  m  m  m  a   a  t   t  i c     a   a
  17.   GGGG   r      aaaa  pppp   h   h  m  m  m   aaaa   ttt   i  cccc  aaaa
  18.                       p
  19.                       p
  20.  
  21. ========================================================================
  22.  
  23.                                Graphmatica
  24.                            (formerly GraphIt!)
  25.  
  26.                       Version 3.00  Mon 27 Jan 1992
  27.  
  28.  
  29.                             by Keith Hertzer
  30.                      Copyright (C) 1992 kSoft, Inc.
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.                           System Requirements:
  39.                           --------------------
  40.  
  41. IBM personal computer or compatible equipped with CGA, EGA, MCGA, or
  42. VGA graphics, at least 256 KB of RAM, and a diskette drive or hard
  43. disk, running MS-DOS version 2.0 or higher.
  44.  
  45. Graphmatica also supports Microsoft and compatible mice. If your mouse
  46. driver is installed at boot-up, Graphmatica will automatically detect and
  47. make use of your mouse. See Section I for details on "mouse strokes."
  48.  
  49.     Note: Please do not edit GRMAT1.HLP, GRMAT2.HLP, GRMAT3.HLP, or
  50. GRMAT4.HLP. They are formatted especially for use by the Graphmatica
  51. help view function. Altering these files may prevent effective use of
  52. the help text. These files are a subset of the information contained in
  53. GRAPHMAT.DOC, so if you want printed documentation, you need not make a
  54. hard copy of the .HLP files.
  55.  
  56.  
  57.  
  58.  
  59.                  Graphmatica version 3.00  GRAPHMAT.DOC
  60.  
  61. ======================================================================
  62.                          C  O  N  T  E  N  T  S
  63. ======================================================================
  64.  
  65.  
  66. Section I: Using Graphmatica.........................................3
  67.  
  68. Section II: Using the Graph function.................................5
  69.  
  70. Section III: Extended graph functions: polar, parametric, dif eq....10
  71.  
  72. Section IV: Using AutoRedraw and the Redraw Queue...................13
  73.  
  74. Section V: View: Changing the appearance of the screen..............16
  75.  
  76. Section VI: Options: Viewing and setting special options............18
  77.  
  78. Section VII: Using a printer with Graphmatica.......................21
  79.  
  80. Appendix A: Graphmatica's Command Line Arguments....................23
  81.  
  82. Appendix B: Editing equation lists and GRAPHMAT.INI.................24
  83.  
  84. Appendix C: Upgrade Notes: Changes from 2.80........................26
  85.  
  86. Appendix D: Shareware / Order Form..................................27
  87.  
  88.  
  89.          NEW! NEW! NEW! Graphmatica for Windows NEW! NEW! NEW!
  90.  
  91. Graphmatica for Windows, version 1.0 is now available for Windows 3.0
  92. users. No more of this fake "Windows-startable" icon business in this
  93. version of Graphmatica for DOS. If Graphmatica for Windows isn't
  94. available on the BBS where you got this file, download it from CompuServe
  95. (in the math/science forum) or contact me and I will ship it directly to
  96. you for a fee of $5.
  97.  
  98.                            DEMO EQUATION FILES
  99.  
  100. Five prewritten equation list files are included with Graphmatica to
  101. help demonstrate the kinds of graphs you can create and how to create
  102. them. Try loading each of them up, manipulating the view of the
  103. equations, redrawing, and modifying some equations. I suggest clearing
  104. the screen (if not the redraw queue as well) before loading a new file
  105. so the screen doesn't become too cluttered. The files each contain a
  106. different sort of graphs that you can draw with Graphmatica.
  107.  
  108. GRAPHMAT.GR - draws Graphmatica's name, mainly show-off of the power of
  109.               parametric equations
  110. XYDEMO.GR   - Cartesian equations, quadratic equations, relations
  111. TRIG.GR     - trigonometric graphs
  112. POLAR.GR    - polar coordinates graphs
  113. DIFEQ.GR    - sample differential equation approximations
  114.  
  115. Read section IV (page 15) to learn how to use these demo files.
  116.  
  117.  
  118.  
  119. Section                                            =====================
  120. III                                                | Using Graphmatica |
  121.  I                                                 =====================
  122.  I
  123.  I
  124. IIIo                                                                   3
  125. ------------------------------------------------------------------------
  126.  
  127.  
  128.                                   MENUS
  129.  
  130. Graphmatica is driven completely through pull-down menus, which operate
  131. in a pretty standard manner. As you navigate through the menus with the
  132. cursor keys, an explanation of the highlighted option appears on the
  133. bottom line of the screen. Highlight the option you want by using the
  134. left and right cursor keys. Select the highlighted option in the top bar
  135. by pressing enter.
  136.  
  137. The Help, Redraw, View, Options, and Print items each call up a
  138. secondary pull-down menu. Highlight the item you want using the up and
  139. down cursor keys. Select the highlighted item by pressing enter again.
  140. To cancel the menu and return to the top bar, press escape. Or, use the
  141. left/right cursor keys to move to the next item on the top bar.
  142.  
  143. If you usually keep Num Lock on or prefer to use function keys instead
  144. of cursoring around, the function keys will select the options in the
  145. current menu in the order they appear on the screen. (i.e. in the main
  146. menu, F1 selects help, F2 Graph, etc., and F7 selects Exit. In the View
  147. menu, F1 would select Clear, F2 Scale, and so on.) Function key labels
  148. are not provided on the options because the screen is crowded enough as
  149. it is, but there are not many options to learn. If you use function
  150. keys, you do NOT need to press enter to select that item.
  151.  
  152.  
  153.                 POP-UP PROMPTS and the Graphmatica EDITOR
  154.  
  155. Almost all data input in Graphmatica is done through pop-up "dialog
  156. boxes" which appear roughly in the center of the screen. (The main
  157. exception is the equation input, which takes place on the bottom line so
  158. you can look at other graphs while you enter an equation.) If there are
  159. additional instructions, they will replace the menu bar on the top line.
  160. The input editor makes full use of the standard editing keys: Insert,
  161. Delete, Backspace, Left and Right arrow keys, Home, and End. Escape
  162. clears the entire field as in BASIC. A simulated graphics cursor
  163. alternately flashes the character at the current position and the
  164. underscore character (or a full block when you are inserting) so full
  165. editing is possible.
  166.  
  167. Usually if you choose a function by mistake and it presents you a pop-up
  168. prompt, pressing enter or ESC on the blank field will return you to the
  169. menu as if you had never selected the option. However, to abort using
  170. the range function to change the range of coordinates displayed, you
  171. must press enter at all 4 prompts, and the current range will be
  172. preserved, BUT the screen will clear.
  173.  
  174.  
  175.  
  176. I. Using Graphmatica                                                   4
  177. ------------------------------------------------------------------------
  178.  
  179.                              USING A MOUSE
  180.  
  181. Graphmatica has internal support for Microsoft (R) and compatible mice.
  182. If a mouse driver is installed when you run Graphmatica, it will
  183. automatically be detected and the usual mouse arrow will appear. To use
  184. the mouse on the menus, you simply "point and click." However, please be
  185. aware of the following idiosyncrasies of my mouse routines:
  186.    1. The left button, as usual, is always used to select an item or
  187.       emulate a keystroke. Whenever you see a prompt that says "Press
  188.       any key...", clicking the left button will have the same effect
  189.       as hitting a key.
  190.    2. The right button has the same effect as pressing the ESC key
  191.       whenever pressing ESC is a valid option. To get out of a
  192.       pulldown menu, you can click the right button.
  193.    3. When used with a mouse, the menus are technically drop-down, not
  194.       pull-down; you must release the mouse button before your choice
  195.       will be registered, so you can't push the button down, pull the
  196.       cursor around, and release the mouse button to select the item.
  197.    4. Whenever you are using Graphmatica's input editor, the mouse can
  198.       be used to do two things: Pressing the right button, as usual,
  199.       causes the same effect as pressing the ESC key. You can also
  200.       position the cursor inside the edit field by clicking the left
  201.       button on the space you want to move to.
  202.    5. In the graph loop only, clicking on the up or down arrows to the
  203.       right of the input field causes the same effect as pressing those
  204.       keys, scrolling up or down an equation in the queue.
  205.    6. To use the mouse to scroll through a help file, click on the key
  206.       name (highlighted in red on the bottom line of the screen which
  207.       corresponds to the action you want to perform. In addition,
  208.       clicking the right mouse button corresponds to the escape key.
  209.    7. The mouse is not available during the actual graphing loop, to
  210.       prevent the pointer and the graph drawing routine from fighting
  211.       over the screen. To pause the graph, you must use the keyboard.
  212.       The mouse can be used to restart or cancel the graph at this
  213.       prompt though.
  214.  
  215.  
  216.              Important! ---> HARDWARE NOTE <--- Important!
  217.  
  218. If you have a CGA monitor, you may need to run the DOS program
  219. GRAFTABL.COM (a small TSR that allows block graphics characters to be
  220. printed in graphics modes) before successfully running Graphmatica. The
  221. program seems to come only with DOS 3 and up but it runs under any
  222. version. If you're not sure whether your adapter has a graphics (>ASCII
  223. 127) character generator included, run Graphmatica first. If you NEED to
  224. run GRAFTABL, there will be NO box characters around the pulldown menus,
  225. none around the settings box, and the full block insert cursor will not
  226. function. Otherwise, you're okay without it. Since it's TSR, you need
  227. run it only once and then it's active until you reboot.
  228.  
  229.  
  230.  
  231. Section                                     ============================
  232. III III                                     | Using the Graph function |
  233.  I   I                                      ============================
  234.  I   I
  235.  I   I
  236. III IIIo                                                               5
  237. ------------------------------------------------------------------------
  238.  
  239. Graphmatica's equation parser will automatically isolate the variable
  240. "y" wherever it is in the equation. It will graph some relations, like
  241. circles ("x^2+y^2=36") and ellipses ("x^2/3 + y^2/4 = 20"), as well as
  242. hyperbolas, sideways parabolas ("x=y^2") and many other conic sections.
  243. (Consult a good Algebra II textbook for help on their formulas, as I'm a
  244. little rusty.) The only limitation for functions is that there must be
  245. one and only one occurrence of the variable "y". Graphmatica cannot
  246. graph an equation without a "y", like "x=4". It also cannot perform the
  247. factoring needed to isolate the variable "y" when it occurs more than
  248. once (i.e. "x=y^2+3y"). The relation graphing module (for graphs which
  249. may have more than one y value for a given x value) works like this: if
  250. in isolating the "y" in an equation Graphmatica finds an even power of
  251. it (i.e. "y^2"), it makes two equations for that graph, one with the
  252. positive and one with the negative root. This method by no means covers
  253. all possible relations, but it is adequate for the most common. In fact,
  254. I haven't thought up an equation it can't graph yet.
  255.  
  256.                                OPERATORS
  257.  
  258. Graphmatica uses an operator set almost identical to BASIC's, with
  259. several additions to make it more user-friendly. The supported operators
  260. and functions are as follows:
  261.  
  262.     Operator/Function   Meaning
  263.     =================   ==============================================
  264.     +, -, *, /          Add, subtract, multiply, divide
  265.     ^                   Exponentiation
  266.     [( )]               Parentheses: may be nested to any extent,
  267.                         brackets are provided for ease of reading but
  268.                         parser WON'T differentiate between "(" and "["
  269.     ; (semicolon)       Separate halves of a parametric equation
  270.     ' (single quote)    Make rest of the equation a comment
  271.     { a, b }            Specify domain, where 'a' is the start of the
  272.                         domain and 'b' is the end. Either end may be
  273.                         left open by omitting 'a' or 'b'.
  274.  
  275.     abs                 absolute value
  276.     acos, asin, atan    arc cosine, arc sine, and arc tangent
  277.     asec, acsc, acot    arc secant, arc cosecant, and arc cotangent
  278.     cos, cosh           cosine and hyperbolic cosine
  279.     cot                 cotangent (1/tan)
  280.     csc                 cosecant (1/sin)
  281.     exp                 Euler's number to the specified power
  282.     int                 greatest integer ([x] is not supported)
  283.     ln, log             natural logarithm, logarithm base 10
  284.     sec                 secant (1/cos)
  285.     sin, sinh           sine, hyperbolic sine
  286.     sqr                 square root
  287.     tan, tanh           tangent, hyperbolic tangent
  288.  
  289. NOTE that all trig functions work in RADIANS, not degrees. Besides the
  290. variables x, y, r, t, and dx, 2 other "variables" (pi [3.14159...] and e
  291. [Euler's number: 2.718...]) are legal identifiers for your convenience.
  292.  
  293.  
  294.  
  295. II. Using the Graph function                                           6
  296. ------------------------------------------------------------------------
  297.  
  298.                             CALLING FUNCTIONS
  299.  
  300. The parser's ability to determine exactly what you want to pass as an
  301. argument to a function is somewhat limited, so I suggest you make it a
  302. habit to enclose the desired expression in parentheses. "cos x" may work
  303. fine but "cos 2x" is interpreted as "(cos 2)*x" and "cos x^2" turns out
  304. "(cos x)^2". Typing "cos (2x)" or "cos (x^2)" instead works perfectly.
  305.  
  306. The order of operations is the standard algebraic left to right of:
  307.     Functions
  308.     Parentheses
  309.     Exponents
  310.     Multiplication and division
  311.     Addition and subtraction
  312.  
  313. Graphmatica supports implied multiplication of variables and constants
  314. as in "3x" or "5(2x+3)", but not of variables and other alphabetic
  315. identifiers such as functions and built-in transcendental numbers like
  316. "xx", "xcos(x)", or "xpi", so you must include the times sign in those
  317. cases. (Implied multiplication of the two variables x and y [e.g.
  318. "xy=1"] IS supported, however.) The parser may reject some complex
  319. expressions for no apparent reason. Keep trying! I suggest liberal use
  320. of parentheses: if you are not sure whether something will be
  321. interpreted correctly, go back and put parentheses around it. (However,
  322. you should not use parentheses gratuitously; the best example of this is
  323. that if you enclose the entire expression on either side of the equals
  324. sign in parentheses, the parser will NOT be able to find the expression
  325. inside.)
  326.  
  327.                           SPECIFYING THE DOMAIN
  328.  
  329. Graphmatica now allows you to specify the domain of each equation
  330. independently. This allows you to draw only a particular part of a graph
  331. or change the domain without using the Range or T range functions to
  332. change the default domain. To specify a domain for an equation, type
  333. anywhere on the line the expression
  334.                                 { a, b }
  335. where 'a' is the start of the domain and 'b' is the end. If you want the
  336. domain to start at the default start, leave 'a' out. Then, whatever you
  337. change the start of the default domain to, that will always be where the
  338. equations starts graphing. To leave the end of the domain open, leave
  339. out 'b'. So if the range on-screen is (-10,10), specifying a domain of
  340. "{ ,5}" will graph from -10 to 5, and one of "{-4, }"  from -4 to 10.
  341.  
  342. To graph a parametric equation, you MUST specify a domain that is closed
  343. (i.e. one that has neither number left out).
  344.  
  345. For ease of use for polar graphs or trigonometric functions, you can
  346. type the domain in just as you do to specify the default range of theta
  347. for polar graphs. Briefly, this allows you to specify multiples of pi by
  348. typing '###p' and degree measures instead of radians by typing '###d'
  349. (for full details see Section VI, page 19).
  350.  
  351.  
  352.  
  353. II. Using the Graph function                                           7
  354. ------------------------------------------------------------------------
  355.  
  356.                           GRAPHING THE EQUATION
  357.  
  358. To interrupt a graph when the computer is in the process of drawing it,
  359. hit any key and the program will display on the bottom line the message:
  360.    "PAUSE at x=#, y=#. Press ESC to quit, any other key to restart.. "
  361. where # indicates the x and y coordinates you stopped it at. If you
  362. mistyped the equation and want to fix it, just press ESC.
  363.  
  364. Be patient! Graphmatica may need a while to produce a quality graph on a
  365. slower machine. To speed up the graphing, you may want to select a lower
  366. Fineness value.
  367.  
  368.  
  369.                             THE GRAPHING LOOP
  370.  
  371.     When the graph for your equation is complete, you will again be
  372. given the "Graph?" prompt at the bottom of the screen. If you'd like
  373. to start all over with a completely different equation, press ESC and
  374. the input field will clear. If you'd rather modify the last equation,
  375. go right ahead; it's already stored safe and sound in the redraw queue
  376. (for more information see Section IV: Using AutoRedraw and the Redraw
  377. Queue). Or you can modify any previously entered equation by using the
  378. up and down arrow keys to scroll backwards and forwards in the redraw
  379. queue, respectively. (Clicking the mouse on the up and down arrows to
  380. the right of the graph prompt is equivalent to pressing the key.) You
  381. can also use this "scroll back" capability to redraw a graph that is in
  382. the queue but not presently on the screen: just press enter on the line
  383. of the equation you want. To exit the otherwise infinite graphing loop,
  384. press enter or escape on a blank line (escape twice will always work),
  385. press the function key corresponding to the menu item you want, or
  386. click on the desired menu item with the mouse.
  387.  
  388.  
  389.                              ERROR MESSAGES
  390.  
  391. Twelve error messages may be encountered when graphing (apart from
  392. messages ingrained in the library functions which I cannot control). Six
  393. of them are fatal; the equation cannot be graphed and you must edit it.
  394. They will cause the computer to beep so you know there is a problem. The
  395. other six apply only to specific point(s) for which a y-value cannot be
  396. generated. They will not appear unless you ask for them using the
  397. Warnings option and then they appear silently.
  398.  
  399. [Please note that all warning messages which refer to the variables 'x'
  400. or 'y' will actually be 't' or 'r' when you are dealing with a polar
  401. equation.]
  402.  
  403. "Found bad operation or mismatched parentheses. Press any key to
  404. retype..."
  405.     You either left out a paren somewhere, left out one or both of the
  406.     operands for a binary operation or the argument for a function, or
  407.     typed some other weird thing the parser and evaluator couldn't
  408.     digest, like putting parentheses around the entire expression.
  409.     Examine your equation carefully and fix whatever seems to be the
  410.     problem.
  411.  
  412.  
  413.  
  414. II. Using the Graph function                                           8
  415. ------------------------------------------------------------------------
  416.  
  417. "Found unknown identifier. Press any key to retype equation."
  418.     Unfortunately, the evaluator isn't set up to return what caused
  419.     the error, so you'll have to look for it yourself. Check that your
  420.     equation contains only valid identifiers (x, y, pi, e, r, t, and
  421.     the functions listed above) and that you separated each of them
  422.     with an operator, space, or some other punctuation.
  423.  
  424. "No equals sign or more than one found. Press any key to edit
  425. equation."
  426.     To be a valid and graphable, your equation must include exactly
  427.     one equals sign ['=']. If you get this error, you either left out
  428.     the '=' or accidentally typed two or more of them. For parametric
  429.     equations, there must be an '=' on each side of the dividing ';'.
  430.  
  431. "No 'y' variable or more than one found. Press any key to edit
  432. equation."
  433.     Although Graphmatica has been enhanced to isolate ONE 'y' variable
  434.     and graph some relations, it cannot graph an equation without a
  435.     'y', like "x=4". It also cannot perform the factoring needed to
  436.     isolate the variable 'y' when it occurs more than once (i.e.
  437.     "x=y^2+3y"). If you can adjust the equation so it uses only one
  438.     'y', do so; otherwise it can't be graphed. In parametric graphing,
  439.     this message may also indicate that no 'x' variable was found in
  440.     the x(t) equation.
  441.  
  442. "Can't find the inverse of this function of y. Press a key to edit
  443. equation."
  444.     You tried to graph an equation like "int(y)=x" or "abs(y)=x" for
  445.     which y cannot be isolated by taking the inverse of the function.
  446.     The functions which cannot be isolated are "abs", "cosh", "sinh",
  447.     "tanh", and "int". If you can't adjust the equation so this error
  448.     does not occur, it is not graphable.
  449.  
  450. "Parametric equation requires that you specify domain! See 'Graph' help
  451. file."
  452.     You typed in a parametric equation (or accidentally hit the
  453.     semicolon) and neglected to include a closed domain [like {1,6}].
  454.     Because the diversity of parametric equations makes it hard to pick
  455.     a default domain, you have to include one with each parametric
  456.     graph. See above in this section for help on giving the domain and
  457.     below in Section III for help on parametrics.
  458.  
  459.  
  460.  
  461. II. Using the Graph function                                           9
  462. ------------------------------------------------------------------------
  463.  
  464.  
  465.                          WARNING ERROR MESSAGES
  466.  
  467. "Overflow at x=#.##."
  468.     Some function or operation generated a number too large to fit
  469.     into a 8-byte floating point variable. The point at x=#.## was not
  470.     graphed. This error is not fatal, so the graphing process is
  471.     continued, but if the message is repeated and no image is graphed,
  472.     you may need to abort graphing and look at your equation again.
  473.  
  474. "Division by zero at x=#.##."
  475.     At x=#.## your equation included division by zero so that point
  476.     was skipped. Unless you get this error repeatedly, there's no real
  477.     problem.
  478.  
  479. "Can't raise a negative number to a fractional power. [x=#.##]"
  480.     Due to the possibility of getting an even root of a negative
  481.     number (like -16^(1/2) which actually equals the square root of
  482.     -16), the C Library pow() function refuses to process any
  483.     arguments like these. This is not a fatal error, and the portion
  484.     of your graph (if any) where the base is not negative or the power
  485.     is not fractional should be graphed perfectly. This error also
  486.     occurs when you try to take the square root of a negative number
  487.     with the "sqr" function.
  488.  
  489. "Can't find the logarithm of a negative number. [x=#.##]"
  490.     The natural logarithm (ln) and base 10 logarithm (log) functions
  491.     are defined only on x greater than zero.
  492.  
  493. "Domain error: asin/acos functions defined only on -1<=x<=1. [x=#.##]"
  494.     The arcsine (asin) and arc cosine (acos) functions are only
  495.     defined between -1 and 1 (the range of the sin and cos functions).
  496.  
  497.  
  498.  
  499. Section                                     ============================
  500. III III III                                 | Extended Graph Functions |
  501.  I   I   I                                  ============================
  502.  I   I   I
  503.  I   I   I
  504. III III IIIo                                                          10
  505. ------------------------------------------------------------------------
  506.  
  507.                       INTRODUCTION TO POLAR GRAPHS
  508.  
  509. Polar coordinates are a fundamentally different approach to representing
  510. curves in two-dimensional space. The concept is pretty easy to grasp
  511. graphically, but if you have never used polar coordinates and want to
  512. understand them, you should probably read the section below.
  513.  
  514. The traditional Cartesian method relies on an x and a y coordinate to
  515. mark how far a point is from the axes in two perpendicular directions;
  516. polar coordinates plot the location of a point by one coordinate
  517. represented by the greek letter theta (looks like an O with a line
  518. through the middle--one of these methods should print it: Θ or O-) which
  519. is simplified to "t" in Graphmatica and another called "r". The "t"
  520. tells what direction to go in from the origin, and the "r" tells how far
  521. to go out in that direction to reach the point. The direction is
  522. measured in radians as an angle starting from the positive side of the
  523. x-axis and turning around counter-clockwise (like measuring the angle
  524. the hand on a clock has traveled starting at the 3 o'clock position and
  525. going backwards). There are 2pi radians in a complete circle,
  526. corresponding to 360 of the degrees you're familiar with. To put a polar
  527. coordinate into Cartesian terms in order to graph it, we use the
  528. equations: x = r cos (theta)  and  y = r sin (theta).
  529.  
  530. To make a graph using polar coordinates, we let theta be the independent
  531. variable and calculate a distance to plot out from the origin as we let
  532. the angle sweep around in the positive direction. The domain for the
  533. graphing is 0 to 2pi (the first complete circle in the positive
  534. direction), but you can easily change these values using the "T range"
  535. function in the Options menu. [see Section VI:Special Options, page 19]
  536. Polar graphs can be entered from the "Graph?" prompt just like normal
  537. graphs. The only difference in what you type, and the way Graphmatica
  538. detects a polar graph, is that you must use the variables "t" and "r"
  539. instead of "x" and "y". The restrictions are still the same: you can
  540. have one and only one instance of the dependent variable "r," although
  541. it can be located almost anywhere in the equation. You can embed the "r"
  542. in a term like "r^2" to graph functions that cannot be simplified by
  543. normal means and Graphmatica will evaluate both positive and negative
  544. roots automatically. You should watch as your graph is drawn, because
  545. often the direction it is going is almost as important as the figure it
  546. draws. (When you have a "double" equation with "r^2" in it, though, note
  547. that the positive roots are drawn first and then the negative roots are
  548. drawn: theoretically they should be drawn simultaneously but this is not
  549. practically possible.)
  550.  
  551. Please note that the x and y coordinate ranges and the range for the
  552. variable theta function completely independently; in normal Cartesian
  553. graphing, theta's value is irrelevant, and in polar graphing, theta
  554. controls the domain of the graph, but the x and y ranges still control
  555. the physical screen you see. If you want to change your view of a polar
  556. graph, you use the scale or range functions just as you would normally.
  557.  
  558.  
  559.  
  560. III. Extended graph functions                                         11
  561. ------------------------------------------------------------------------
  562.  
  563.                     INTRODUCTION TO PARAMETRIC GRAPHS
  564.  
  565. Parametric graphing, like polar graphing, uses a different method of
  566. calculating points on the plane to come up with curves that may be
  567. difficult to compute using normal rectangular coordinates. They are
  568. unique in that the cartesian x and y coordinates are calculated based on
  569. a third variable (the "parameter" of x and y) which is traditionally
  570. called 't' (not to be confused with the 't' used by Graphmatica to
  571. represent theta). T is allowed to increase from the start of the domain
  572. you specify to the end. At each value, the functions x(t) and y(t) are
  573. calculated to give an (x,y) coordinate which is graphed. Graphmatica
  574. then connects these points to form a smooth curve--if something you
  575. graph begins to look jagged, you probably need to adjust the fineness.
  576. (Parametric graph fineness is linked to the same fineness control as
  577. Cartesian and polar graphing, and should be decent at the default
  578. fineness value, but if you need to, you can increase or decrease this
  579. value. Be aware that this will affect the fineness of non-parametric
  580. graphs as well. See Section VI "Adjusting the Fineness" for details.)
  581.  
  582. To enter a parametric graph, you need to remember four basic parts: the
  583. x(t) and y(t) functions, the semicolon between them (this is how
  584. Graphmatica knows it's a parametric graph), and the domain for t.
  585.                       semicolon
  586.                 x-function |   y-function    domain
  587.                     |      |        |           |
  588.                   x =  2t  ;   y =  2t^2   {-10, 10}
  589.  
  590. Although as in all other Graphmatica equations you don't need to solve
  591. for x and y (i.e. t=5x would be OK), only one x and one y can appear in
  592. the whole equation, and "double" equations like "x^2=t" where
  593. Graphmatica would normally solve for both the positive and negative
  594. roots are NOT supported (you can enter them but only the positive root
  595. will be found; each equation in the redraw queue is allowed enough space
  596. to hold two computable expressions, and either a double equation or an
  597. x/y pair of parametric equations will fit, but not both). You can type
  598. the x and y equations in in either order, as long as they are separated
  599. by a semicolon, and the domain will be recognized anywhere on the line.
  600. You MUST specify a domain for each parametric equation! The variety of
  601. curves that can be drawn with parametric equations is great and makes
  602. choosing an appropriate default domain impossible. Some curves (like
  603. those including the circular functions sine and cosine) tend to work
  604. best over a {0,2pi} domain, like polar graphs. Others will match up
  605. better with the default domain of the normal graphs, the size of the
  606. viewing area. Some have a very compact domain, between say 0 and 1,
  607. where they will appear on the screen. If you over- or under-estimate the
  608. domain, you can always abort the graph and edit your equation.
  609.  
  610.  
  611.  
  612. III. Extended graph functions                                         12
  613. ------------------------------------------------------------------------
  614.  
  615.                COMPARISON OF THE THREE GRAPHING TECHNIQUES
  616.  
  617.     While some curves can be drawn by cartesian relations, polar
  618. coordinates, and parametric functions, each technique is better suited
  619. for some graphs than for others. For instance, a circle with radius 5
  620. around the origin which can be produced by the equation
  621.                              x^2 + y^2 = 25
  622. can be drawn faster by the parametric equations
  623.                  x = 5 cos (t) ; y = 5 sin (t)  {0, 2p}
  624. and can be drawn faster and much more simply by the polar graph
  625.                                  r = 5.
  626.  
  627.  
  628.             GRAPHING APPROXIMATIONS OF DIFFERENTIAL EQUATIONS
  629.  
  630. Graphmatica also has built-in a rudimentary feature for approximating
  631. the solutions of first-order differential equations. [I will not provide
  632. background material on this function because if you need to use it, you
  633. probably know more about differential equations than I do.] To let the
  634. parser know you want to graph a differential equation, you must include
  635. the differential "dx" as one of your variables. If you specify an
  636. equation as dx = f(x,t) where f(x,t) is some combination of the
  637. variables x and t (such as "x^3 + t" or "t * x" ) and do NOT include the
  638. domain operator "{ , }", the program will draw a slope field for dx/dt =
  639. f(x,t).
  640.  
  641. If you do include the domain operator {a, b} , however, it will not be
  642. interpreted as a domain but will instead indicate that you want to graph
  643. a specific solution to the initial-value problem x(a)=b by Cauchy-Euler
  644. approximation. This deviation from the normal notation is only valid for
  645. differentials.
  646.  
  647.  
  648.  
  649. Section                        =========================================
  650. III VVV VVV                    | Using AutoRedraw and the Redraw Queue |
  651.  I   V   V                     =========================================
  652.  I   V   V
  653.  I    V V
  654. III    V o                                                            13
  655. ------------------------------------------------------------------------
  656.  
  657.                             USING AutoRedraw
  658.  
  659. Whenever you change the scale to look at a graph in greater detail or
  660. from farther back, or you shift the range of the axes so that the graph
  661. you just drew will be centered, the screen must be cleared so that a new
  662. coordinate grid can be drawn. So you're left with the viewing angle you
  663. wanted for that graph, but the screen is blank. You shouldn't have to
  664. solve this problem by retyping the whole equation again...and you don't.
  665. You can redraw the equation much more easily by selecting Last graph in
  666. the Redraw menu. But with AutoRedraw ON, you don't even have to do that.
  667.  
  668. As its name suggests, AutoRedraw will redraw the last equation(s) you
  669. typed in automatically when you change the scale or range. If you don't
  670. want a graph redrawn, you can abort it by pressing ESC twice and you
  671. will be returned to the menu. If you want to turn off AutoRedraw
  672. completely, just select AutoRedraw under the Options menu and answer "n"
  673. when asked if you want AutoRedraw on.
  674.  
  675. To change the number of graphs redrawn automatically, you should also
  676. select AutoRedraw from the menu. After responding "y" when asked if you
  677. want it on, enter the number of graphs (1-25) that you would like to be
  678. redrawn each time AutoRedraw is invoked. (If there aren't that many in
  679. the queue, Graphmatica will just redraw them all.)
  680.  
  681. AutoRedraw is ON by default. You can change the default to OFF by
  682. turning it off and using the Save Setup command to record this change in
  683. the GRAPHMAT.INI file.
  684.  
  685.                             THE REDRAW QUEUE
  686.  
  687. Every time you type in an equation, the character string you typed and
  688. the program's internal representation of that equation get stored in the
  689. redraw queue. From this queue, or list, you can call up any of the last
  690. 25 equations you typed to graph again with fewer keystrokes than
  691. retyping it. Or you can redraw all of them or the just the last one you
  692. typed with even fewer keystrokes. The equations in the queue are stored
  693. in an order that puts the most-recently-used at the beginning and the
  694. least-recently-used at the end. Hopefully, when the queue fills up, the
  695. equations that are bumped off the queue at the end will be the ones you
  696. won't miss very much.
  697.  
  698. As explained above, the screen clears whenever you execute Range or a
  699. successful Scale (if you abort Scale the screen remains as it was). If
  700. you execute either of these functions or clear the screen accidentally
  701. with the Clear menu option, you can redraw the last equation (if
  702. AutoRedraw hasn't already) by selecting Last graph under Redraw, or you
  703. can redraw all of the equations in the queue using Redraw All under the
  704. Redraw menu. Note that the redraw function does not keep track of which
  705. graphs are on the screen at any point in time so "redrawing all" may put
  706. more (if you plotted many equations on the screen before the last one)
  707. or fewer (if you cleared the queue) equations on the screen than there
  708. were before the screen was cleared.
  709.  
  710.  
  711.  
  712. IV. Using AutoRedraw and the Redraw Queue                             14
  713. ------------------------------------------------------------------------
  714.  
  715. The Pick graph option in the Redraw menu allows you to graph any of the
  716. equations currently in the redraw queue. The equation-viewing is limited
  717. to one at a time in a pop-up box. If you would like to redraw the one
  718. shown, press enter. Or, if you have a mouse, click the left button on
  719. the equation itself. If you want to look at more, press any other key
  720. except Escape (or click on any point on the screen outside of the box
  721. with the equation in it). When you have looked at all of the equations
  722. in the queue, it recycles to the first equation again. If the equations
  723. start looking familiar, you've probably reached the beginning again. If
  724. you decide you don't want to redraw any of the equations presented for
  725. your perusal, press Escape (or click the right mouse button) and the
  726. command will be ignored. When you pick a graph, it is re-inserted at the
  727. top of the redraw queue, as you'll likely be working with it again in
  728. the future. So if you scale the grid again, that graph will be Auto-
  729. Redrawn, and if you redraw the last graph, that graph will be shown.
  730.  
  731. The same function as the "Pick graph" Redraw option can also be
  732. completed very effectively in the graph loop. After you have selected
  733. Graph from the menu, you can scroll through every equation you have
  734. entered into the redraw queue on the bottom line of the screen. If there
  735. are any other equations entered, to the right of the input area will
  736. appear an up arrow. Press the up arrow key or click the mouse on the
  737. arrow on the screen to scroll back one equation. You will notice the
  738. arrows on the right change to show both an up and a down, showing there
  739. are more equations on either side of this one. When you have scrolled to
  740. the top of the list, the up arrow will disappear. Press the down arrow
  741. key or button to scroll back down the list if you want to. When you have
  742. found the equation you want, press enter (do not modify the equation)
  743. and the graph will be redrawn. You will be returned to the graph loop,
  744. and the same equation will be displayed for editing, except now it is
  745. the head of the queue. When you have finished redrawing, press ESC twice
  746. to exit the graph loop.
  747.  
  748.  
  749.  
  750. IV. Using AutoRedraw and the Redraw Queue                             15
  751. ------------------------------------------------------------------------
  752.  
  753.                     SAVING AND LOADING EQUATION LISTS
  754.  
  755. To save the list of equations you're working on, as well as the title
  756. and y-axis labels if you've entered them, simply select Save List from
  757. the Redraw menu and enter a filename. This file will be saved in the
  758. current directory with an extension of ".GR" (for GRaphmatica) unless
  759. you specify differently. To save to diskette, you simply have to insert
  760. "A:" or "B:" before your filename. Longer directories may not fit. When
  761. asked if you want to include setup information, answer "y" if you want
  762. to record the current size of the grid and options settings in the
  763. equation list file. Otherwise, only the text labels and equations in the
  764. queue are saved in the file.
  765.  
  766. To reload your list of equations or load up one of the demo files
  767. provided with Graphmatica, you have more options. You can automatically
  768. load a file when you run Graphmatica by typing its name (with or without
  769. a file path or the ".GR" extension) as a command-line argument. Then
  770. those equations will be loaded up (and graphed) immediately after the
  771. opening screen, unless the file includes the autoredraw=off statement
  772. (see Appendix B: editing equation lists). You can also load an equation
  773. list at any time by selecting "Load list" in the Redraw menu. You will
  774. be presented a list of files available (if there are any) which can be
  775. selected using the up/down arrow keys or mouse. This list includes two
  776. special options, "[Cancel]" and "[New path]". Select cancel to return to
  777. the menu without loading a file, and new path to change the current
  778. directory to look for files elsewhere.
  779.  
  780. After you select a file to load, if the redraw queue is not empty, you
  781. must decide whether to add the new file's equations to the existing
  782. queue or replace its current contents. Answer "Y" to the prompt to clear
  783. the queue before loading the new file, or "N" to keep it.
  784.  
  785. When the file has been loaded, if AutoRedraw is on Graphmatica will
  786. proceed to draw all of the equations just loaded (but not the ones that
  787. were previously in the queue, if you didn't clear it). You can abort
  788. these by pressing ESC twice on each if you are impatient. The graph
  789. title and Y-axis labels (if the file had any) that were loaded won't be
  790. displayed unless you do a Print Preview (see Section VII).
  791.  
  792. If the file was saved with the Save setup option on, the grid and
  793. special options settings recorded in the file will be loaded and set
  794. automatically.
  795.  
  796.  
  797.  
  798. Section                  ===============================================
  799. VVV VVV                  | View: Changing the appearance of the screen |
  800.  V   V                   ===============================================
  801.  V   V
  802.   V V
  803.    V o                                                                16
  804. ------------------------------------------------------------------------
  805.  
  806.                           CLEARING THE SCREEN
  807.  
  808. Select Clear in the View menu to clear the screen. Everything will be
  809. erased and the grid will then be redrawn. Remember, every equation you
  810. have typed is still stored and can be redrawn later even after you have
  811. cleared the screen. If an error has garbled the whole screen, here's a
  812. hint to help regenerate it: first press ESC until the top menu bar is
  813. refreshed, and then use Clear to redraw the rest of the screen.
  814.  
  815.  
  816.                            CHANGING THE SCALE
  817.  
  818. The scale function allows you to change the scale of the graph you have
  819. on-screen while keeping the center of the display the same (the origin
  820. may move but if (2,2) is at the middle of the screen, it will stay
  821. there). The scale is totally relative to the size of the grid that is
  822. presently on the screen, so you need not make any comparison with an
  823. absolute scale of 1. To rescale the grid, select "Scale" from the
  824. options menu. Then respond to the prompt according to the following
  825. guidelines:
  826.  
  827. Enter a positive number to zoom in, or a negative number to pan out. (In
  828. the new Camcorder-age terminology, a positive number acts as a telephoto
  829. and a negative as a wide-angle lens.) The number of units across the
  830. screen will be divided or multiplied by that number accordingly. Numbers
  831. between -1 and 1, inclusive, are invalid because they produce
  832. meaningless values. Decimals greater than 1 or less than -1 are valid
  833. though.
  834.  
  835. If you enter an invalid number, you will be asked again to enter the
  836. scale. To abort rescaling, just press enter on a blank line.
  837.  
  838.  
  839.                            ADJUSTING THE RANGE
  840.  
  841. The ability to adjust the grid by inputting the beginning and end of the
  842. desired range is one of the most powerful and flexible features
  843. Graphmatica offers. It can rescale the grid to either be a perfect fit
  844. for the function you are graphing so that as much of it is visible as
  845. possible or to render the most accurate image possible on even the
  846. lowest resolution CGA screen. Both of these features can be accomplished
  847. by selecting Range in the Options menu.
  848.  
  849. To create a grid such as the first, graph an equation on the standard
  850. grid, and from that graph determine the top-, bottom-, left- and
  851. rightmost extremities of the graph, and respond with the proper values
  852. to the 4 Range prompts. The new grid may be somewhat expanded or
  853. compressed depending on the aspect ratio, but it will show the same
  854. amount of graph in much greater detail.
  855.  
  856.  
  857.  
  858. V. View: Changing the Appearance of the Screen                        17
  859. ------------------------------------------------------------------------
  860.  
  861. To create a more accurate representation like the second grid, you can
  862. use the AutoScale feature of Range. Just type "auto" for any of the four
  863. coordinates and it will automatically be scaled to fit the other three.
  864. Typically you would pick the least significant coordinate to AutoScale,
  865. since you can match the other three exactly. If you want to show the
  866. same amount above as below the axis, type "auto" at both of the y-
  867. coordinate prompts and the top and bottom of the grid will be set to
  868. properly scaled equal and opposite values. (AutoScaling of both x-
  869. coordinates based on the height of the grid is not supported.)
  870.  
  871.  
  872.                               AXES LEGENDS
  873.  
  874. Graphmatica has been equipped with a routine that labels the hatch marks
  875. across the graph so you can more easily locate points or find the
  876. coordinates of a graphed point. In some cases, though, especially when
  877. doing graphs near the axes in monochrome CGA mode, the numbers can be
  878. confusing and you may want to turn them off. To do this, select the
  879. Legends option in the Options menu. To turn the legends back on, select
  880. the Legends option again.
  881.  
  882.  
  883.                       ADDING A TITLE TO YOUR GRAPH
  884.  
  885. If you want to add a title line to your graph, select Title from the
  886. View menu. Since the title can be almost the width of the screen, it
  887. can't be entered in a normal popup box, so the prompt appears on the top
  888. line and the input field is at the bottom, where the graph prompt
  889. usually is. You can type in a new title, edit one you typed in
  890. previously, or delete the title by pressing enter on a blank line. When
  891. you print (or select Print Preview from the menu), the title is written
  892. across the top line of the screen, which the menu normally occupies, and
  893. it is automatically centered. Do not try to center the title manually
  894. when you are typing it in or it will interfere with the automatic
  895. centering. When you are graphing and the menu is active, the title line
  896. is not shown.
  897.  
  898.                      LABELING THE Y-AXIS WITH TEXT
  899.  
  900. Graphmatica can add text labels (regular printing going down instead of
  901. across) to both sides of your graph. Select the "Label Y" function of
  902. the View menu to add your own labels (there are none initially). The
  903. length of the string you can use depends on the number of rows you
  904. monitor has: CGA and EGA can hold 23 letters and VGA can hold 28. The
  905. program presents you with the previous label which you can edit, discard
  906. by pressing ESC and typing a new string, or turn off completely by
  907. pressing ESC and then enter on the blank line. Like the title, these
  908. labels are automatically centered (vertically) on the graph. Graphmatica
  909. does not draw these labels instantly, since they are intended mainly to
  910. enhance hardcopy printing, but if you want to see how the labels will
  911. look, you can perform the Preview option under the Print menu.
  912.  
  913.  
  914.  
  915. Section                          =======================================
  916. VVV VVV III                      | Viewing and Setting Special Options |
  917.  V   V   I                       =======================================
  918.  V   V   I
  919.   V V    I
  920.    V    IIIo                                                          18
  921. ------------------------------------------------------------------------
  922.  
  923.                           THE DEFAULT SETTINGS
  924.  
  925. When you run Graphmatica without a GRAPHMAT.INI file, the following
  926. settings are in effect:
  927.  
  928.     Start of range:  (-8.0, *)
  929.       End of range:  (8.0, *)
  930.           Fineness:  1.0 **
  931.            Legends:  ON           Warnings:  OFF
  932.            Printer:  OFF        AutoRedraw:  ON
  933.            AutoNum:  1
  934.        Theta Range:  0 to 6.28 (2pi)
  935.  
  936. *  varies depending on video mode; always equal and opposite and scaled
  937.    to provide a square aspect ratio.
  938. ** on CGA systems fineness is automatically set down to 0.75 to speed up
  939.    graphing.
  940. This provides a basic rectangular grid of decent size with the origin
  941. centered, a square aspect ratio (a 1x1 square on the grid really LOOKS
  942. square), and a good resolution graph.
  943.  
  944.                           VIEWING THE SETTINGS
  945.  
  946. The current settings are almost always displayed whenever you change one
  947. of them. Every item under Options (unless aborted) will bring up the
  948. settings screen. You can also look at them manually by selecting
  949. Settings in the Options menu.
  950.  
  951.                         SAVING SETUP INFORMATION
  952.  
  953. You can save your preferred grid size and settings of other user options
  954. so that whenever you run Graphmatica again they will automatically be
  955. restored. You can do this at any time by selecting the Save Setup item
  956. in the Options menu. The options will be saved in the GRAPHMAT.INI file
  957. in the current directory. If this is not where the program files are
  958. stored, Graphmatica will not be able to find it again, so if you change
  959. the directory using the load or save list commands, be sure to reset it
  960. before you save the setup (or be prepared to copy this file into the
  961. proper directory).
  962.  
  963. The setup file is just a special equation list that is loaded
  964. automatically (if you don't specify another equation list on the command
  965. line) when you start Graphmatica. It follows the exact same format as a
  966. normal equation list (described in Editing Equation Lists) except that
  967. when you save it Graphmatica leaves out the labels and the equations
  968. (the important parts of normal equation lists). If you do want to save
  969. equations and labels in it, use the normal save command (and answer "y"
  970. when asked if you want to save setup information), and just enter the
  971. filename GRAPHMAT.INI.
  972.  
  973. When Graphmatica saves your options, to simplify things it only records
  974. those options that are different from its own internal defaults. (See
  975. Default Settings for a list of these.) If your settings are close to the
  976. defaults, your setup file will be very short.
  977.  
  978.  
  979.  
  980. VI. Viewing and Setting Special Options                               19
  981. ------------------------------------------------------------------------
  982.  
  983.                        CHANGING THE RANGE OF THETA
  984.  
  985. Because the independent variable (theta) in polar coordinates is
  986. fundamentally different from the 'x' of Cartesian coordinates, the
  987. Cartesian x/y ranges can only be used to determine the size of the
  988. screen and not the domain of the equation graphed for polar graphs.
  989. Although the default 0 to 2pi range is the typical range of theta used
  990. for most graphs that go on forever (like spirals) and some closed graphs
  991. (like circles), other graphs cannot be completely drawn in this range of
  992. theta. For instance, the figure-8-shaped "r^2=64cos(2t)", because it is
  993. undefined where the right half is less than zero, is missing a couple of
  994. spots unless theta's range is extended to -2pi to 2pi. To allow the
  995. greatest flexibility, Graphmatica allows theta's range to be changed
  996. independently of all other options.
  997.  
  998. To change the range, select "T range" under the Options menu and enter
  999. the start and end of the range you want (or press enter on the blank
  1000. line to keep the current range). Although Graphmatica works exclusively
  1001. with radians, you can enter the range in either radians, degrees, or
  1002. radian multiples of pi. (Decimals are allowed, but no fractions can be
  1003. entered.) To indicate a value is a degree measure, follow it with a 'd'
  1004. (any numbers after the 'd' are ignored). To indicate it is a multiple of
  1005. pi, follow it with a 'p' (again, 'p' must be the last character in your
  1006. response). A plain number will be understood to be regular radians. You
  1007. cannot use both the 'p' and 'd' options at once, but it would be
  1008. ridiculous to measure degrees in multiples of pi anyway. So, to enter
  1009. the range mentioned above, you would type "-2p" at the first prompt, and
  1010. "2p" at the second.
  1011.  
  1012. If you would rather not change the default domain but simply change the
  1013. domain for a single graph, see Section II "Specifying a Domain".
  1014.  
  1015.  
  1016.  
  1017. VI. Viewing and Setting Special Options                               20
  1018. ------------------------------------------------------------------------
  1019.  
  1020.  
  1021.                          ADJUSTING THE FINENESS
  1022.  
  1023. The fineness factor determines how high the resolution of the graph will
  1024. be, and in effect, also the amount of time it takes to complete the
  1025. graph. The fineness factor of 1 is quite adequate in most circumstances.
  1026. With the addition of SmartFineness automatic fineness adjustment to the
  1027. line-drawing feature in the graph-drawing loop, the manual fineness
  1028. adjustment has become almost obsolete, but I left it in to accommodate
  1029. the need for especially sharp graphs or for especially quick renderings.
  1030. SmartFineness automatically decreases the fineness when the point being
  1031. graphed is not on the screen to speed up blank areas, then recovers
  1032. automatically and backtracks to the spot where the graph comes on-screen
  1033. again. It also varies the fineness with the slope of the equation being
  1034. graphed--less when the slope is near-horizontal, greater when the slope
  1035. tends toward vertical, so steep graphs are tracked more effectively. As
  1036. the fineness is increased, more of the curve will be smoothed out, but
  1037. remember that if you increase the fineness factor to 5, the computer
  1038. will be slowed down to 1/5 its normal graphing speed under the load of
  1039. all the extra calculations. A factor greater than 10 can bring even the
  1040. fastest 386 computer to a snail's pace.
  1041.  
  1042. If you have CGA adapter, Graphmatica assumes you are using an 8088 non-
  1043. turbo PC and reduces the fineness to 0.75 to speed up graphing; the
  1044. difference in resolution is usually not very noticeable on the CGA
  1045. screen, but the difference in speed is.
  1046.  
  1047. Fineness is also linked to the rate at which the angle is allowed to
  1048. change in polar graphs, and both Cartesian and Polar graphs will be of
  1049. comparable quality at the same fineness factor. Fineness is also linked
  1050. to the step rate of parametric graphs; because they vary so much, it is
  1051. harder to insure that all parametrics will graph well at the default
  1052. fineness, but those that I have tested look fine.
  1053.  
  1054. To change the fineness factor, select Fineness from the Options menu.
  1055. Any value greater than zero is valid; however I would recommend not
  1056. going below 0.25, as the image quality suffers and the graphs begin to
  1057. look like modern art.
  1058.  
  1059.  
  1060.                            WARNING MESSAGES
  1061.  
  1062. By default, the error messages which do not require the equation to be
  1063. retyped are suppressed, because they slow down the graphing process,
  1064. cover up the equation, and are somewhat annoying when you know the graph
  1065. shouldn't produce any values in some area. (Also, it saves you the
  1066. effort of specifying the domain for each equation.) If something goes
  1067. wrong (e.g. the graph doesn't show up on screen when it should and the
  1068. reason isn't readily apparent), you can turn on the warning messages
  1069. (using the Warnings function of the Options menu) and redraw it to see
  1070. what the problem is. You can use the same menu option to turn the
  1071. messages off later.
  1072.  
  1073.  
  1074.  
  1075. Section                             ====================================
  1076. VVV VVV III III                     | Using a Printer with Graphmatica |
  1077.  V   V   I   I                      ====================================
  1078.  V   V   I   I
  1079.   V V    I   I
  1080.    V    III IIIo                                                      21
  1081. ------------------------------------------------------------------------
  1082.  
  1083.  
  1084.                     PRINTING PICTURES OF YOUR GRAPHS
  1085.  
  1086. Graphmatica includes an internal printing function which works with CGA,
  1087. EGA, and VGA under any version of DOS _without_ loading the DOS utility
  1088. GRAPHICS.COM. If you have an IBM, Epson, or compatible dot-matrix
  1089. graphics-capable printer or a laser printer with Epson emulation, this
  1090. routine should work fine. (If you have a LaserJet or compatible, use the
  1091. LaserJet routine.) Graphmatica does not check the printer's status, so
  1092. you must have it on before you try to print. Select the Graphs function
  1093. from the Print menu and all the graphs on the screen will be printed on
  1094. the printer, with the top of the screen at the top of the paper. At the
  1095. bottom of the page, it prints a list of the equations for the graphs
  1096. Graphmatica thinks are presently on the screen. All graphs you have
  1097. drawn since the last time the screen was cleared, except ones that you
  1098. aborted by pressing ESC are included in this list.
  1099.  
  1100. If you want to abort the printing process, press ESC. Don't turn off or
  1101. reset the printer until the "Printing..." message at the bottom of the
  1102. screen is gone or DOS may print an error message and mess up the screen.
  1103.  
  1104. The output is as close to what you see on the screen as I can make it,
  1105. but at VGA resolution it may seem rather stretched out because most
  1106. printers can't print lines any wider and I cannot make that printout any
  1107. shorter without deleting lines and harming the resolution. The size of
  1108. the printout will vary between different monitor types because to make
  1109. the grid square, I had to expand the x axis different amounts to make up
  1110. for the different vertical resolutions. For CGA mode, the x direction is
  1111. expanded by 33% and the y by 100%. For EGA, the x is expanded by 20% and
  1112. the y remains as it was read off the screen. For VGA, the x is expanded
  1113. 50% and the y remains as-is. Since it is expanded the least and has a
  1114. nearly square grid, the EGA resolution printout is probably the best you
  1115. can get with a dot-matrix printer. If you have a VGA monitor and want to
  1116. print graphs at the EGA resolution, you can use the "/E" command-line
  1117. switch to force the program to run in EGA mode (see Appendix A).
  1118.  
  1119.  
  1120.  
  1121. VII. Using a Printer with Graphmatica                                 22
  1122. ------------------------------------------------------------------------
  1123.  
  1124.                             LaserJet COMMAND
  1125.  
  1126. This version of the print routine should work for all Hewlett Packard
  1127. LaserJet and DeskJet printers and most others compatible with the HP
  1128. Printer Control Language Level III. This should include almost all PC
  1129. laser printers. The routine works in much the same way as the dot-matrix
  1130. print routine, except it produces crisper, more compact images due to
  1131. the superior resolution. The VGA image will print the best with a laser
  1132. printer: every point is mapped on a one-to-one basis due to the square
  1133. aspect ratios of both the screen and printer. EGA and CGA images are
  1134. scaled accordingly so the output isn't squashed, and they print graphics
  1135. that are not as sharp but still much better than dot-matrix output.
  1136.  
  1137. NOTE --> Graphmatica assumes your printer resides at LPT1:. If your
  1138. printer is not connected to the parallel port but to the serial port
  1139. instead, you must use the DOS mode command to redirect the output if you
  1140. want to use the printer. For most people, the command would be
  1141.     C:\>mode lpt1 = com1
  1142. You need to use this command only once before you run Graphmatica; DOS
  1143. will remember the redirection until you shut off the computer or reboot.
  1144.  
  1145. NOTE --> If you have a color printer and a version of GRAPHICS.COM that
  1146. produce legible output from a printscreen, you may want to load GRAPHICS
  1147. and just press Shift-PrtSc while in "Preview" mode instead of using the
  1148. print option. (It can only print in black and white.)
  1149.  
  1150.                               PRINT PREVIEW
  1151.  
  1152. To see how the screen will look when it is printed, simply select the
  1153. Preview option from the Print menu. The menu bar and help line will
  1154. clear, and the graph title and y-axis labels (if any) will be drawn on
  1155. the screen. If you have a color printer that works better with an
  1156. external print screen function, this is the perfect time to press the
  1157. Print Screen button (if you have a mouse, be sure to hide the arrow at
  1158. the bottom of the screen first). In any case, you can look at it as long
  1159. as you need to. When you want to return to work, just press any key or
  1160. mouse button and the menu will reappear. (The side labels are not
  1161. erased, however; they must be cleared manually.
  1162.  
  1163.                              PRINTING VALUES
  1164.  
  1165. This feature allows you to print out a table of coordinates as the
  1166. program is drawing your graph. This option is available to aid the
  1167. drawing of graphs manually (if you happen to be cheating on your
  1168. homework) and provide a reference for labeling the axes if you print the
  1169. graph without the legends on (using the Print menu item described on the
  1170. previous page).
  1171.  
  1172. By default, the print tables option is OFF; most people don't leave
  1173. their printer on at all times and the process does slow graphing a bit.
  1174. You can turn it on by selecting Tables in the Print menu and responding
  1175. "y" to the prompt.
  1176.  
  1177.  
  1178.  
  1179. Appendix                        ========================================
  1180.  AAAA                           | Graphmatica's Command Line Arguments |
  1181. A    A                          ========================================
  1182. AAAAAA
  1183. A    A
  1184. A    Ao                                                               23
  1185. ------------------------------------------------------------------------
  1186.  
  1187. With the introduction of the new GRAPHMAT.INI file, which will not only
  1188. save your preferred options automatically from inside Graphmatica but
  1189. will also reset them automatically the next time you run the program,
  1190. most of the command line arguments that GraphIt! version 2.80 supported
  1191. have been removed. [Although you shouldn't need to edit the setup file
  1192. yourself at all, its format is described in Appendix B.] The remaining
  1193. command line arguments are described below.
  1194.  
  1195. All arguments are NOT case sensitive (i.e. "/E" is the same as "/e").
  1196. Arguments must be separated by one or more spaces on the command line.
  1197. Excluding filenames, all arguments begin with the standard MS-DOS
  1198. "switch" character ("/"). UNIX-style switches (starting with "-") are
  1199. NOT supported. Unidentifiable command line arguments may cause the
  1200. message 'Unknown argument "XXXXX" ignored. Press any key...' to be shown
  1201. on the bottom line of the screen. Command-line options are listed in
  1202. alphabetical order below.
  1203.  
  1204. /E           Force EGA mode
  1205. ---------------------------
  1206.     If you have a VGA adapter and want to force Graphmatica into EGA mode
  1207.     for its better printer output, use this option. It has no effect on
  1208.     an EGA monitor and will cause an error on a CGA system.
  1209.  
  1210. /G:xxxxxx        Graph Equation
  1211. -------------------------------
  1212.     If you want to start up Graphmatica by automatically graphing one or
  1213.     more equations, use the /G: option. The only limits on the number
  1214.     of equations you can include on the command line are the capacity
  1215.     of the redraw queue (25 equations) and, of course, the maximum
  1216.     length of the command line (I think it's around 128 characters).
  1217.     The equation(s) will be parsed and graphed in exactly the same way
  1218.     as the regular prompted input, with one exception: if you want to
  1219.     include any spaces in the equation, you must enclose the whole
  1220.     "/G:xxxx" string in quotation marks or the spaces will be
  1221.     interpreted as delimiters between arguments. Any other options on
  1222.     the command line (range, scale, fineness, etc.) will be executed
  1223.     BEFORE the equation is graphed. As the Graphmatica editor is far
  1224.     superior to the DOS command line editor, this option has limited
  1225.     usefulness, but it is a good interface for execution from a batch
  1226.     file.
  1227.  
  1228. filename[.ext]
  1229. --------------
  1230.     Specifying the name of a valid equation list file (with or without
  1231.     the ".GR" extension) loads that file upon startup. Unless
  1232.     AUTOREDRAW=OFF is specified in the [options] section of the file
  1233.     loaded (assuming it has one), the graphs are drawn as soon as the
  1234.     opening screen is gone. If you load a file in this manner,
  1235.     GRAPHMAT.INI is NOT loaded.
  1236.  
  1237.  
  1238.  
  1239. Appendix                   ===========================================
  1240. BBBB                       | EDITING EQUATION LISTS AND GRAPHMAT.INI |
  1241. B   B                      ===========================================
  1242. BBBB
  1243. B   B
  1244. BBBB o                                                              24
  1245. ----------------------------------------------------------------------
  1246.  
  1247. Graphmatica does not really provide facilities for maintaining equation
  1248. lists; although you can edit an equation and change the order of
  1249. equations by redrawing selected graphs, determining the precise order of
  1250. equations in the list is difficult since they are dynamically shuffled
  1251. each time an equation is entered or redrawn to make Graphmatica more
  1252. interactive. However, the equation list is just a text file whose
  1253. structure is virtually identical to the win.ini file, you can create or
  1254. modify one with virtually any editor. The structure goes like this:
  1255. (sections in parentheses are explanations; don't type them in.)
  1256.  
  1257.   [labels]
  1258.   title = xxxx    (any character string, up to 76 chars.)
  1259.   left = xxxx
  1260.   right = xxxx
  1261.  
  1262.   [grid]
  1263.   left = #.##            (left side of grid)     (any decimal number)
  1264.   right = #.##           (right  "  "  ")        (or "auto" to autoscale)
  1265.   top = #.##             (top of grid)
  1266.   bottom = #.##          (bottom of grid)
  1267.  
  1268.   [options]
  1269.   autoredraw = on or off  (controls AutoRedraw)          ("on" or "off")
  1270.   autonum = ##            (number of equations to A.R.)  (any integer 0-25)
  1271.  _legends = on or off    _(controls axis legends (numbers))
  1272. | hogcpu = on or off      |
  1273. | mono = on or off        |   valid under Graphmatica for Windows ONLY
  1274. | autosquare = on or off  |  Graphmatica for DOS ignores these 4 settings
  1275. |_labels = on or off     _|
  1276.   tables = on or off      (controls print tables feature)
  1277.   warnings = on or off    (controls warning error messages)
  1278.   defscale = #.##         (default for "Scale" prompt - any decimal number)
  1279.   fineness = #.##         (default fineness value)
  1280.   tstart = #.##           (default start of theta's domain)
  1281.   tstop = #.##            (default end of theta's domain)
  1282.  
  1283.   [equations]
  1284.   (up to 25 equations, each up to 68 characters, each on a separate line.)
  1285.  
  1286. The [labels] section specifies the title and y-axis labels. The [grid]
  1287. section gives the left, right, top and bottom coordinates of the grid.
  1288. Type "auto" for any one to auto-scale that coordinate based on the other
  1289. three. Type auto for both the top and bottom to auto-scale the y-axis so
  1290. the top and bottom coordinates are equal and opposite.
  1291.  
  1292.  
  1293.  
  1294. B. Editing equation lists and GRAPHMAT.INI                            25
  1295. ------------------------------------------------------------------------
  1296.  
  1297. You can omit any item or even a complete section if you don't want to
  1298. change the default. Type exactly as specified above, including the
  1299. brackets "[ ]" around the section headings, but replacing the values on
  1300. the right side of the equals signs with your own values. If you don't
  1301. know or don't care what the value is for an option, just leave the line
  1302. out. Don't worry about capitalization, extra spaces, or even extra blank
  1303. lines. (However, each entry must be on a separate line or some may be
  1304. ignored.) You can put the options and sections in any order ... the only
  1305. requirement is that the [equations] section must come last, if there is
  1306. one. Invalid options are also ignored.
  1307.  
  1308. If you want to create a file with no titles or options, simply type the
  1309. "[equations]" header and then type all of your equations. Each equation
  1310. must be on a separate line. There is one catch, however: since
  1311. Graphmatica graphs the most recently entered equation first when it
  1312. redraws, when the list is loaded and graphed, the equation listed LAST
  1313. will be graphed FIRST. (It is certainly possible to correct this
  1314. situation by graphing the equations as they come in, but then every
  1315. subsequent "redraw all" command would draw the list backwards anyway.)
  1316. If you load an equation list and immediately save it without changing
  1317. anything, the net effect will be that the order of the equations in the
  1318. file is reversed.
  1319.  
  1320. The GRAPHMAT.INI file, which is loaded whenever you run Graphmatica
  1321. without specifying an equation list to load, uses the exact same
  1322. format... when you choose the Save Setup command, Graphmatica simply
  1323. saves the setup file as it would an equation list, except the [labels]
  1324. and [equations] sections are omitted, since you probably don't want to
  1325. have the same graph title and equations load up automatically forever
  1326. and ever.
  1327.  
  1328.                       CONVERTING OLD EQUATION LISTS
  1329.  
  1330. To convert equation lists from GraphIt! for DOS version 2.80, load the
  1331. file in any text editor and make the following changes: [Graphmatica for
  1332. Windows 1.0 files are identical to 3.0 for DOS files.]
  1333.  
  1334. If there are titles in the file, add a [labels] header to the top,
  1335. insert a title= before the first line, left= before the second, and
  1336. right= before the third.
  1337.  
  1338. Insert a new line and type the [equations] header line before the
  1339. equations.
  1340.  
  1341. That's it. You can now load the file up in Graphmatica and resave it
  1342. with the save setup option to save a specific grid or other options
  1343. along with the equations.
  1344.  
  1345.  
  1346.  
  1347. Appendix                          ====================================
  1348.  CCCC                             | Upgrade Notes: Changes from 2.80 |
  1349. C                                 ====================================
  1350. C
  1351. C
  1352.  CCCC o                                                             26
  1353. ----------------------------------------------------------------------
  1354.  
  1355. While I have minimized any changes to the user interface in Graphmatica
  1356. version 3.0, this new release does include a significant number of new
  1357. features that make it more powerful and flexible than any previous one.
  1358. Please take a minute to acquaint yourself with these features:
  1359.  
  1360. 1. Graphmatica enters the portable age. Although Graphmatica may look
  1361.    basically the same on the outside, it has undergone massive internal
  1362.    restructuring to make the core code portable between different
  1363.    computers. Graphmatica for Windows is available now if you have Windows
  1364.    3.0. Versions for other platforms may follow.
  1365. 2. No more command-line arguments (well, pretty much). You can still
  1366.    specify a file to load on startup using the "filename" argument. All
  1367.    other options are set automatically to the settings in GRAPHMAT.INI
  1368.    (if it exists; otherwise the defaults are used). You can edit this
  1369.    manually or have Graphmatica save it for you.
  1370. 3. New equation list format. Equation lists are stored in the same
  1371.    "win.ini" type format used for GRAPHMAT.INI. This allows you to save
  1372.    your current setup (i.e. grid dimensions and options settings) along
  1373.    with your equations and title. A simple conversion process
  1374.    (described in Appendix B) is required to use version 2.80 files.
  1375. 4. All graphs turbocharged by SmartFineness III. The addition of end-
  1376.    of-domain checking and fineness adjustment makes sure your graphs
  1377.    reach the end of their domain and allows me to double the base step
  1378.    rate for normal cartesian graphs, meaning they will graph twice as
  1379.    fast with little noticeable loss of quality.
  1380. 5. Two styles of approximating solutions to differential equations:
  1381.    slope-field and Cauchy-Euler graphs of 1st order differential
  1382.    equations have been added. See the end of Section III for details.
  1383. 6. Extra trig function support: sec, csc, cot, and their inverses asec,
  1384.    acsc, and acot have been added to the functions supported. No more
  1385.    typing 1/cos etc.
  1386. 7. Instant redraw from points instead of recalculating: When you use
  1387.    the on-line help, change the legends on/off setting in CGA mode, or
  1388.    redraw a graph when the grid has been cleared but not changed in
  1389.    size, Graphmatica will redraw your graphs immediately from memory
  1390.    without recalculating, so you save time.
  1391. 8. You can now set the number of graphs that are redrawn automatically
  1392.    whenever you resize the grid to any number from 1 to 25.
  1393. 9. Improved AutoScale feature when you select a range: you can now
  1394.    AutoScale any of the four coordinates, not just the bottom one. You
  1395.    can also scale both the top and bottom at once.
  1396. 10.Improved grid-drawing can now paint lines at fractional intervals,
  1397.    not just whole numbers. Also grid does not become "scrunched" so
  1398.    much as you zoom out.
  1399. 11.Bugs fixed: GraphIt! 2.80 on rare occasions trapped users in an
  1400.    endless loop of refreshing the menu bar for no reason. This and a
  1401.    bug that at low fineness levels caused the graph to be drawn
  1402.    endlessly backwards past the start of the domain have been fixed.
  1403.    Sorry if they caused anyone any trouble.
  1404.  
  1405. I hope you find these new features beneficial. If you'd like to support
  1406. future versions with your comments and suggestions, see Appendix D for
  1407. the mail-in survey form.
  1408.  
  1409.  
  1410.  
  1411. Appendix                                    ==========================
  1412. DDDDD                                       | Shareware / Order Form |
  1413. D    D                                      ==========================
  1414. D    D
  1415. D    D
  1416. DDDDD  o                                                            27
  1417. ----------------------------------------------------------------------
  1418.  
  1419. Shareware: Feel free to distribute copies of Graphmatica to your friends
  1420. and upload to BBS's where others can donwload it AS LONG AS 1) you
  1421. charge no fees for its use or distribution and 2) you do not modify the
  1422. program or documentation files in any way.
  1423.  
  1424. [Shareware catalogs have permission to distribute this product for no
  1425. more than $5 a copy. However, please contact me to make sure you have
  1426. the latest version before you do so.]
  1427.  
  1428. This program is to be taken AS IS with no warranties, express or
  1429. implied. There are several bugs I know of, most of which have to do with
  1430. error messages I cannot keep the library functions from printing, but no
  1431. serious bugs that could cause loss of data or even a system crash.
  1432. Please tell me about any bugs you may find that I should correct for the
  1433. next release.
  1434.  
  1435. If this file is over six months old, Graphmatica has probably been
  1436. upgraded. Look for a newer version on CompuServe or contact me. For $5 I
  1437. will send you a disk with the latest version (you can decide whether to
  1438. register AFTER you get it).
  1439.  
  1440. If, after using Graphmatica, you find that it is easy, helpful, and
  1441. convenient to use, please support the release of future versions by
  1442. filling out the registration form on the next page and sending your
  1443. contribution (payable to Keith Hertzer) to the address below:
  1444.  
  1445.                               kSoft, Inc.
  1446.                           345 Montecillo Dr.
  1447.                       Walnut Creek, CA 94595-2613
  1448.  
  1449. If you send $20 or more, you will be registered to receive a diskette
  1450. with the next versions of Graphmatica for DOS and Windows when they
  1451. become available, along with promotional copies of other kSoft programs.
  1452. For releases after that, you will be informed that a new version is
  1453. available and how you can get it.
  1454.  
  1455. Even if you cannot send any money, please help me out by filling out the
  1456. response form below, especially if you have any suggestions about what I
  1457. should add to the next upgrade.
  1458.  
  1459. Graphmatica is now supported via CompuServe. If you are a member, look
  1460. for new versions in the Math and Science forum ("GO SCIENCE") and feel
  1461. free to send me feedback at any time at User ID 70711,2071.
  1462.  
  1463. WHAT'S NEXT? When I wrote Graphmatica for Windows, I added a bunch of
  1464. new features just because they were so easy to implement in that
  1465. environment. The ones that I could I ported back to DOS (like the
  1466. GRAPHMAT.INI setup file). If I have the time and ambition, I will try to
  1467. add some of the harder-to-implement features to the DOS version. But I'm
  1468. also still open to suggestions, if you can tell me what to look at.
  1469.  
  1470. If you would like a copy of the source code for Graphmatica for DOS
  1471. (compiled under Microsoft QuickC version 2.5), please send me $20 and a
  1472. short note telling why you would like it.
  1473.  
  1474. --G3.0---------------------kSoft REGISTRATION FORM---------------------1/92--
  1475.  
  1476. Name &
  1477. Company ____________________________________    Phone _______________________
  1478.  
  1479.  
  1480. Address _____________________________________________________________________
  1481.  
  1482.  
  1483. City ________________________________    State _______    ZIP _______________
  1484.  
  1485.   _
  1486.  |_|  Enclosed is my $20 or more contribution. Please register me to
  1487.       receive the next upgrade to Graphmatica for DOS.
  1488.   _
  1489.  |_|  Enclosed is my $20 or more contribution. I want Graphmatica for Windows
  1490.       NOW! Please use my upgrade credit to send me the current version.
  1491.   _
  1492.  |_|  Please send me the source code [for QuickC 2.5] to Graphmatica for DOS
  1493.       3.0. I have enclosed a note on why I'd like it and a check for $20.
  1494.  
  1495. ------------------(make checks payable to KEITH HERTZER)---------------------
  1496.  
  1497. What size diskettes do you use?        5 1/4"           3 1/2"
  1498.  
  1499. Where did you get Graphmatica?  (name of BBS or catalog: ________________)
  1500.  
  1501. From a friend      Local BBS       CompuServe      Shareware Catalog
  1502.  
  1503. What processor are you using to run Graphmatica ?  (circle one)
  1504.  
  1505. 8088/8086      286        386sx       386/486       Other (___________)
  1506.  
  1507.  
  1508. What DOS version do you usually run with Graphmatica?   PC / MS   ____ . ____
  1509.  
  1510. If you use a printer with Graphmatica, what type is it?
  1511.  
  1512.      dot-matrix        ink jet        laser       Other (___________)
  1513.  
  1514. What type of video card do you have?      Mono          CGA
  1515.  
  1516.      EGA             VGA           SVGA           Other (___________)
  1517.  
  1518. What features do you like best about Graphmatica?
  1519.  
  1520. _____________________________________________________________________________
  1521.  
  1522. _____________________________________________________________________________
  1523.  
  1524. What problems have you experienced with Graphmatica?
  1525.  
  1526. _____________________________________________________________________________
  1527.  
  1528. _____________________________________________________________________________
  1529.  
  1530. Any other comments or suggestions for improvement in the next upgrade?
  1531. (Your comments are vital so I will know what to change or add. Please
  1532. feel free to use the back or another sheet of paper.)
  1533.  
  1534. _____________________________________________________________________________
  1535.  
  1536. _____________________________________________________________________________
  1537. Please send to: kSoft, Inc., 345 Montecillo Dr., Walnut Creek, CA 94595-2613.
  1538.  
  1539.