home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Black Box 4
/
BlackBox.cdr
/
science
/
grmat30d.arj
/
GRAPHMAT.DOC
< prev
next >
Wrap
Text File
|
1992-01-27
|
78KB
|
1,539 lines
========================================================================
GGGG h t
G G h ttttt
G h t i
G GGGG rrrr aaaa pppp hhhh mmm mm aaaa t cccc aaaa
G G r r a a p p h h m m m a a t i c a a
G G r a a p p h h m m m a a t t i c a a
GGGG r aaaa pppp h h m m m aaaa ttt i cccc aaaa
p
p
========================================================================
Graphmatica
(formerly GraphIt!)
Version 3.00 Mon 27 Jan 1992
by Keith Hertzer
Copyright (C) 1992 kSoft, Inc.
System Requirements:
--------------------
IBM personal computer or compatible equipped with CGA, EGA, MCGA, or
VGA graphics, at least 256 KB of RAM, and a diskette drive or hard
disk, running MS-DOS version 2.0 or higher.
Graphmatica also supports Microsoft and compatible mice. If your mouse
driver is installed at boot-up, Graphmatica will automatically detect and
make use of your mouse. See Section I for details on "mouse strokes."
Note: Please do not edit GRMAT1.HLP, GRMAT2.HLP, GRMAT3.HLP, or
GRMAT4.HLP. They are formatted especially for use by the Graphmatica
help view function. Altering these files may prevent effective use of
the help text. These files are a subset of the information contained in
GRAPHMAT.DOC, so if you want printed documentation, you need not make a
hard copy of the .HLP files.
Graphmatica version 3.00 GRAPHMAT.DOC
======================================================================
C O N T E N T S
======================================================================
Section I: Using Graphmatica.........................................3
Section II: Using the Graph function.................................5
Section III: Extended graph functions: polar, parametric, dif eq....10
Section IV: Using AutoRedraw and the Redraw Queue...................13
Section V: View: Changing the appearance of the screen..............16
Section VI: Options: Viewing and setting special options............18
Section VII: Using a printer with Graphmatica.......................21
Appendix A: Graphmatica's Command Line Arguments....................23
Appendix B: Editing equation lists and GRAPHMAT.INI.................24
Appendix C: Upgrade Notes: Changes from 2.80........................26
Appendix D: Shareware / Order Form..................................27
NEW! NEW! NEW! Graphmatica for Windows NEW! NEW! NEW!
Graphmatica for Windows, version 1.0 is now available for Windows 3.0
users. No more of this fake "Windows-startable" icon business in this
version of Graphmatica for DOS. If Graphmatica for Windows isn't
available on the BBS where you got this file, download it from CompuServe
(in the math/science forum) or contact me and I will ship it directly to
you for a fee of $5.
DEMO EQUATION FILES
Five prewritten equation list files are included with Graphmatica to
help demonstrate the kinds of graphs you can create and how to create
them. Try loading each of them up, manipulating the view of the
equations, redrawing, and modifying some equations. I suggest clearing
the screen (if not the redraw queue as well) before loading a new file
so the screen doesn't become too cluttered. The files each contain a
different sort of graphs that you can draw with Graphmatica.
GRAPHMAT.GR - draws Graphmatica's name, mainly show-off of the power of
parametric equations
XYDEMO.GR - Cartesian equations, quadratic equations, relations
TRIG.GR - trigonometric graphs
POLAR.GR - polar coordinates graphs
DIFEQ.GR - sample differential equation approximations
Read section IV (page 15) to learn how to use these demo files.
Section =====================
III | Using Graphmatica |
I =====================
I
I
IIIo 3
------------------------------------------------------------------------
MENUS
Graphmatica is driven completely through pull-down menus, which operate
in a pretty standard manner. As you navigate through the menus with the
cursor keys, an explanation of the highlighted option appears on the
bottom line of the screen. Highlight the option you want by using the
left and right cursor keys. Select the highlighted option in the top bar
by pressing enter.
The Help, Redraw, View, Options, and Print items each call up a
secondary pull-down menu. Highlight the item you want using the up and
down cursor keys. Select the highlighted item by pressing enter again.
To cancel the menu and return to the top bar, press escape. Or, use the
left/right cursor keys to move to the next item on the top bar.
If you usually keep Num Lock on or prefer to use function keys instead
of cursoring around, the function keys will select the options in the
current menu in the order they appear on the screen. (i.e. in the main
menu, F1 selects help, F2 Graph, etc., and F7 selects Exit. In the View
menu, F1 would select Clear, F2 Scale, and so on.) Function key labels
are not provided on the options because the screen is crowded enough as
it is, but there are not many options to learn. If you use function
keys, you do NOT need to press enter to select that item.
POP-UP PROMPTS and the Graphmatica EDITOR
Almost all data input in Graphmatica is done through pop-up "dialog
boxes" which appear roughly in the center of the screen. (The main
exception is the equation input, which takes place on the bottom line so
you can look at other graphs while you enter an equation.) If there are
additional instructions, they will replace the menu bar on the top line.
The input editor makes full use of the standard editing keys: Insert,
Delete, Backspace, Left and Right arrow keys, Home, and End. Escape
clears the entire field as in BASIC. A simulated graphics cursor
alternately flashes the character at the current position and the
underscore character (or a full block when you are inserting) so full
editing is possible.
Usually if you choose a function by mistake and it presents you a pop-up
prompt, pressing enter or ESC on the blank field will return you to the
menu as if you had never selected the option. However, to abort using
the range function to change the range of coordinates displayed, you
must press enter at all 4 prompts, and the current range will be
preserved, BUT the screen will clear.
I. Using Graphmatica 4
------------------------------------------------------------------------
USING A MOUSE
Graphmatica has internal support for Microsoft (R) and compatible mice.
If a mouse driver is installed when you run Graphmatica, it will
automatically be detected and the usual mouse arrow will appear. To use
the mouse on the menus, you simply "point and click." However, please be
aware of the following idiosyncrasies of my mouse routines:
1. The left button, as usual, is always used to select an item or
emulate a keystroke. Whenever you see a prompt that says "Press
any key...", clicking the left button will have the same effect
as hitting a key.
2. The right button has the same effect as pressing the ESC key
whenever pressing ESC is a valid option. To get out of a
pulldown menu, you can click the right button.
3. When used with a mouse, the menus are technically drop-down, not
pull-down; you must release the mouse button before your choice
will be registered, so you can't push the button down, pull the
cursor around, and release the mouse button to select the item.
4. Whenever you are using Graphmatica's input editor, the mouse can
be used to do two things: Pressing the right button, as usual,
causes the same effect as pressing the ESC key. You can also
position the cursor inside the edit field by clicking the left
button on the space you want to move to.
5. In the graph loop only, clicking on the up or down arrows to the
right of the input field causes the same effect as pressing those
keys, scrolling up or down an equation in the queue.
6. To use the mouse to scroll through a help file, click on the key
name (highlighted in red on the bottom line of the screen which
corresponds to the action you want to perform. In addition,
clicking the right mouse button corresponds to the escape key.
7. The mouse is not available during the actual graphing loop, to
prevent the pointer and the graph drawing routine from fighting
over the screen. To pause the graph, you must use the keyboard.
The mouse can be used to restart or cancel the graph at this
prompt though.
Important! ---> HARDWARE NOTE <--- Important!
If you have a CGA monitor, you may need to run the DOS program
GRAFTABL.COM (a small TSR that allows block graphics characters to be
printed in graphics modes) before successfully running Graphmatica. The
program seems to come only with DOS 3 and up but it runs under any
version. If you're not sure whether your adapter has a graphics (>ASCII
127) character generator included, run Graphmatica first. If you NEED to
run GRAFTABL, there will be NO box characters around the pulldown menus,
none around the settings box, and the full block insert cursor will not
function. Otherwise, you're okay without it. Since it's TSR, you need
run it only once and then it's active until you reboot.
Section ============================
III III | Using the Graph function |
I I ============================
I I
I I
III IIIo 5
------------------------------------------------------------------------
Graphmatica's equation parser will automatically isolate the variable
"y" wherever it is in the equation. It will graph some relations, like
circles ("x^2+y^2=36") and ellipses ("x^2/3 + y^2/4 = 20"), as well as
hyperbolas, sideways parabolas ("x=y^2") and many other conic sections.
(Consult a good Algebra II textbook for help on their formulas, as I'm a
little rusty.) The only limitation for functions is that there must be
one and only one occurrence of the variable "y". Graphmatica cannot
graph an equation without a "y", like "x=4". It also cannot perform the
factoring needed to isolate the variable "y" when it occurs more than
once (i.e. "x=y^2+3y"). The relation graphing module (for graphs which
may have more than one y value for a given x value) works like this: if
in isolating the "y" in an equation Graphmatica finds an even power of
it (i.e. "y^2"), it makes two equations for that graph, one with the
positive and one with the negative root. This method by no means covers
all possible relations, but it is adequate for the most common. In fact,
I haven't thought up an equation it can't graph yet.
OPERATORS
Graphmatica uses an operator set almost identical to BASIC's, with
several additions to make it more user-friendly. The supported operators
and functions are as follows:
Operator/Function Meaning
================= ==============================================
+, -, *, / Add, subtract, multiply, divide
^ Exponentiation
[( )] Parentheses: may be nested to any extent,
brackets are provided for ease of reading but
parser WON'T differentiate between "(" and "["
; (semicolon) Separate halves of a parametric equation
' (single quote) Make rest of the equation a comment
{ a, b } Specify domain, where 'a' is the start of the
domain and 'b' is the end. Either end may be
left open by omitting 'a' or 'b'.
abs absolute value
acos, asin, atan arc cosine, arc sine, and arc tangent
asec, acsc, acot arc secant, arc cosecant, and arc cotangent
cos, cosh cosine and hyperbolic cosine
cot cotangent (1/tan)
csc cosecant (1/sin)
exp Euler's number to the specified power
int greatest integer ([x] is not supported)
ln, log natural logarithm, logarithm base 10
sec secant (1/cos)
sin, sinh sine, hyperbolic sine
sqr square root
tan, tanh tangent, hyperbolic tangent
NOTE that all trig functions work in RADIANS, not degrees. Besides the
variables x, y, r, t, and dx, 2 other "variables" (pi [3.14159...] and e
[Euler's number: 2.718...]) are legal identifiers for your convenience.
II. Using the Graph function 6
------------------------------------------------------------------------
CALLING FUNCTIONS
The parser's ability to determine exactly what you want to pass as an
argument to a function is somewhat limited, so I suggest you make it a
habit to enclose the desired expression in parentheses. "cos x" may work
fine but "cos 2x" is interpreted as "(cos 2)*x" and "cos x^2" turns out
"(cos x)^2". Typing "cos (2x)" or "cos (x^2)" instead works perfectly.
The order of operations is the standard algebraic left to right of:
Functions
Parentheses
Exponents
Multiplication and division
Addition and subtraction
Graphmatica supports implied multiplication of variables and constants
as in "3x" or "5(2x+3)", but not of variables and other alphabetic
identifiers such as functions and built-in transcendental numbers like
"xx", "xcos(x)", or "xpi", so you must include the times sign in those
cases. (Implied multiplication of the two variables x and y [e.g.
"xy=1"] IS supported, however.) The parser may reject some complex
expressions for no apparent reason. Keep trying! I suggest liberal use
of parentheses: if you are not sure whether something will be
interpreted correctly, go back and put parentheses around it. (However,
you should not use parentheses gratuitously; the best example of this is
that if you enclose the entire expression on either side of the equals
sign in parentheses, the parser will NOT be able to find the expression
inside.)
SPECIFYING THE DOMAIN
Graphmatica now allows you to specify the domain of each equation
independently. This allows you to draw only a particular part of a graph
or change the domain without using the Range or T range functions to
change the default domain. To specify a domain for an equation, type
anywhere on the line the expression
{ a, b }
where 'a' is the start of the domain and 'b' is the end. If you want the
domain to start at the default start, leave 'a' out. Then, whatever you
change the start of the default domain to, that will always be where the
equations starts graphing. To leave the end of the domain open, leave
out 'b'. So if the range on-screen is (-10,10), specifying a domain of
"{ ,5}" will graph from -10 to 5, and one of "{-4, }" from -4 to 10.
To graph a parametric equation, you MUST specify a domain that is closed
(i.e. one that has neither number left out).
For ease of use for polar graphs or trigonometric functions, you can
type the domain in just as you do to specify the default range of theta
for polar graphs. Briefly, this allows you to specify multiples of pi by
typing '###p' and degree measures instead of radians by typing '###d'
(for full details see Section VI, page 19).
II. Using the Graph function 7
------------------------------------------------------------------------
GRAPHING THE EQUATION
To interrupt a graph when the computer is in the process of drawing it,
hit any key and the program will display on the bottom line the message:
"PAUSE at x=#, y=#. Press ESC to quit, any other key to restart.. "
where # indicates the x and y coordinates you stopped it at. If you
mistyped the equation and want to fix it, just press ESC.
Be patient! Graphmatica may need a while to produce a quality graph on a
slower machine. To speed up the graphing, you may want to select a lower
Fineness value.
THE GRAPHING LOOP
When the graph for your equation is complete, you will again be
given the "Graph?" prompt at the bottom of the screen. If you'd like
to start all over with a completely different equation, press ESC and
the input field will clear. If you'd rather modify the last equation,
go right ahead; it's already stored safe and sound in the redraw queue
(for more information see Section IV: Using AutoRedraw and the Redraw
Queue). Or you can modify any previously entered equation by using the
up and down arrow keys to scroll backwards and forwards in the redraw
queue, respectively. (Clicking the mouse on the up and down arrows to
the right of the graph prompt is equivalent to pressing the key.) You
can also use this "scroll back" capability to redraw a graph that is in
the queue but not presently on the screen: just press enter on the line
of the equation you want. To exit the otherwise infinite graphing loop,
press enter or escape on a blank line (escape twice will always work),
press the function key corresponding to the menu item you want, or
click on the desired menu item with the mouse.
ERROR MESSAGES
Twelve error messages may be encountered when graphing (apart from
messages ingrained in the library functions which I cannot control). Six
of them are fatal; the equation cannot be graphed and you must edit it.
They will cause the computer to beep so you know there is a problem. The
other six apply only to specific point(s) for which a y-value cannot be
generated. They will not appear unless you ask for them using the
Warnings option and then they appear silently.
[Please note that all warning messages which refer to the variables 'x'
or 'y' will actually be 't' or 'r' when you are dealing with a polar
equation.]
"Found bad operation or mismatched parentheses. Press any key to
retype..."
You either left out a paren somewhere, left out one or both of the
operands for a binary operation or the argument for a function, or
typed some other weird thing the parser and evaluator couldn't
digest, like putting parentheses around the entire expression.
Examine your equation carefully and fix whatever seems to be the
problem.
II. Using the Graph function 8
------------------------------------------------------------------------
"Found unknown identifier. Press any key to retype equation."
Unfortunately, the evaluator isn't set up to return what caused
the error, so you'll have to look for it yourself. Check that your
equation contains only valid identifiers (x, y, pi, e, r, t, and
the functions listed above) and that you separated each of them
with an operator, space, or some other punctuation.
"No equals sign or more than one found. Press any key to edit
equation."
To be a valid and graphable, your equation must include exactly
one equals sign ['=']. If you get this error, you either left out
the '=' or accidentally typed two or more of them. For parametric
equations, there must be an '=' on each side of the dividing ';'.
"No 'y' variable or more than one found. Press any key to edit
equation."
Although Graphmatica has been enhanced to isolate ONE 'y' variable
and graph some relations, it cannot graph an equation without a
'y', like "x=4". It also cannot perform the factoring needed to
isolate the variable 'y' when it occurs more than once (i.e.
"x=y^2+3y"). If you can adjust the equation so it uses only one
'y', do so; otherwise it can't be graphed. In parametric graphing,
this message may also indicate that no 'x' variable was found in
the x(t) equation.
"Can't find the inverse of this function of y. Press a key to edit
equation."
You tried to graph an equation like "int(y)=x" or "abs(y)=x" for
which y cannot be isolated by taking the inverse of the function.
The functions which cannot be isolated are "abs", "cosh", "sinh",
"tanh", and "int". If you can't adjust the equation so this error
does not occur, it is not graphable.
"Parametric equation requires that you specify domain! See 'Graph' help
file."
You typed in a parametric equation (or accidentally hit the
semicolon) and neglected to include a closed domain [like {1,6}].
Because the diversity of parametric equations makes it hard to pick
a default domain, you have to include one with each parametric
graph. See above in this section for help on giving the domain and
below in Section III for help on parametrics.
II. Using the Graph function 9
------------------------------------------------------------------------
WARNING ERROR MESSAGES
"Overflow at x=#.##."
Some function or operation generated a number too large to fit
into a 8-byte floating point variable. The point at x=#.## was not
graphed. This error is not fatal, so the graphing process is
continued, but if the message is repeated and no image is graphed,
you may need to abort graphing and look at your equation again.
"Division by zero at x=#.##."
At x=#.## your equation included division by zero so that point
was skipped. Unless you get this error repeatedly, there's no real
problem.
"Can't raise a negative number to a fractional power. [x=#.##]"
Due to the possibility of getting an even root of a negative
number (like -16^(1/2) which actually equals the square root of
-16), the C Library pow() function refuses to process any
arguments like these. This is not a fatal error, and the portion
of your graph (if any) where the base is not negative or the power
is not fractional should be graphed perfectly. This error also
occurs when you try to take the square root of a negative number
with the "sqr" function.
"Can't find the logarithm of a negative number. [x=#.##]"
The natural logarithm (ln) and base 10 logarithm (log) functions
are defined only on x greater than zero.
"Domain error: asin/acos functions defined only on -1<=x<=1. [x=#.##]"
The arcsine (asin) and arc cosine (acos) functions are only
defined between -1 and 1 (the range of the sin and cos functions).
Section ============================
III III III | Extended Graph Functions |
I I I ============================
I I I
I I I
III III IIIo 10
------------------------------------------------------------------------
INTRODUCTION TO POLAR GRAPHS
Polar coordinates are a fundamentally different approach to representing
curves in two-dimensional space. The concept is pretty easy to grasp
graphically, but if you have never used polar coordinates and want to
understand them, you should probably read the section below.
The traditional Cartesian method relies on an x and a y coordinate to
mark how far a point is from the axes in two perpendicular directions;
polar coordinates plot the location of a point by one coordinate
represented by the greek letter theta (looks like an O with a line
through the middle--one of these methods should print it: Θ or O-) which
is simplified to "t" in Graphmatica and another called "r". The "t"
tells what direction to go in from the origin, and the "r" tells how far
to go out in that direction to reach the point. The direction is
measured in radians as an angle starting from the positive side of the
x-axis and turning around counter-clockwise (like measuring the angle
the hand on a clock has traveled starting at the 3 o'clock position and
going backwards). There are 2pi radians in a complete circle,
corresponding to 360 of the degrees you're familiar with. To put a polar
coordinate into Cartesian terms in order to graph it, we use the
equations: x = r cos (theta) and y = r sin (theta).
To make a graph using polar coordinates, we let theta be the independent
variable and calculate a distance to plot out from the origin as we let
the angle sweep around in the positive direction. The domain for the
graphing is 0 to 2pi (the first complete circle in the positive
direction), but you can easily change these values using the "T range"
function in the Options menu. [see Section VI:Special Options, page 19]
Polar graphs can be entered from the "Graph?" prompt just like normal
graphs. The only difference in what you type, and the way Graphmatica
detects a polar graph, is that you must use the variables "t" and "r"
instead of "x" and "y". The restrictions are still the same: you can
have one and only one instance of the dependent variable "r," although
it can be located almost anywhere in the equation. You can embed the "r"
in a term like "r^2" to graph functions that cannot be simplified by
normal means and Graphmatica will evaluate both positive and negative
roots automatically. You should watch as your graph is drawn, because
often the direction it is going is almost as important as the figure it
draws. (When you have a "double" equation with "r^2" in it, though, note
that the positive roots are drawn first and then the negative roots are
drawn: theoretically they should be drawn simultaneously but this is not
practically possible.)
Please note that the x and y coordinate ranges and the range for the
variable theta function completely independently; in normal Cartesian
graphing, theta's value is irrelevant, and in polar graphing, theta
controls the domain of the graph, but the x and y ranges still control
the physical screen you see. If you want to change your view of a polar
graph, you use the scale or range functions just as you would normally.
III. Extended graph functions 11
------------------------------------------------------------------------
INTRODUCTION TO PARAMETRIC GRAPHS
Parametric graphing, like polar graphing, uses a different method of
calculating points on the plane to come up with curves that may be
difficult to compute using normal rectangular coordinates. They are
unique in that the cartesian x and y coordinates are calculated based on
a third variable (the "parameter" of x and y) which is traditionally
called 't' (not to be confused with the 't' used by Graphmatica to
represent theta). T is allowed to increase from the start of the domain
you specify to the end. At each value, the functions x(t) and y(t) are
calculated to give an (x,y) coordinate which is graphed. Graphmatica
then connects these points to form a smooth curve--if something you
graph begins to look jagged, you probably need to adjust the fineness.
(Parametric graph fineness is linked to the same fineness control as
Cartesian and polar graphing, and should be decent at the default
fineness value, but if you need to, you can increase or decrease this
value. Be aware that this will affect the fineness of non-parametric
graphs as well. See Section VI "Adjusting the Fineness" for details.)
To enter a parametric graph, you need to remember four basic parts: the
x(t) and y(t) functions, the semicolon between them (this is how
Graphmatica knows it's a parametric graph), and the domain for t.
semicolon
x-function | y-function domain
| | | |
x = 2t ; y = 2t^2 {-10, 10}
Although as in all other Graphmatica equations you don't need to solve
for x and y (i.e. t=5x would be OK), only one x and one y can appear in
the whole equation, and "double" equations like "x^2=t" where
Graphmatica would normally solve for both the positive and negative
roots are NOT supported (you can enter them but only the positive root
will be found; each equation in the redraw queue is allowed enough space
to hold two computable expressions, and either a double equation or an
x/y pair of parametric equations will fit, but not both). You can type
the x and y equations in in either order, as long as they are separated
by a semicolon, and the domain will be recognized anywhere on the line.
You MUST specify a domain for each parametric equation! The variety of
curves that can be drawn with parametric equations is great and makes
choosing an appropriate default domain impossible. Some curves (like
those including the circular functions sine and cosine) tend to work
best over a {0,2pi} domain, like polar graphs. Others will match up
better with the default domain of the normal graphs, the size of the
viewing area. Some have a very compact domain, between say 0 and 1,
where they will appear on the screen. If you over- or under-estimate the
domain, you can always abort the graph and edit your equation.
III. Extended graph functions 12
------------------------------------------------------------------------
COMPARISON OF THE THREE GRAPHING TECHNIQUES
While some curves can be drawn by cartesian relations, polar
coordinates, and parametric functions, each technique is better suited
for some graphs than for others. For instance, a circle with radius 5
around the origin which can be produced by the equation
x^2 + y^2 = 25
can be drawn faster by the parametric equations
x = 5 cos (t) ; y = 5 sin (t) {0, 2p}
and can be drawn faster and much more simply by the polar graph
r = 5.
GRAPHING APPROXIMATIONS OF DIFFERENTIAL EQUATIONS
Graphmatica also has built-in a rudimentary feature for approximating
the solutions of first-order differential equations. [I will not provide
background material on this function because if you need to use it, you
probably know more about differential equations than I do.] To let the
parser know you want to graph a differential equation, you must include
the differential "dx" as one of your variables. If you specify an
equation as dx = f(x,t) where f(x,t) is some combination of the
variables x and t (such as "x^3 + t" or "t * x" ) and do NOT include the
domain operator "{ , }", the program will draw a slope field for dx/dt =
f(x,t).
If you do include the domain operator {a, b} , however, it will not be
interpreted as a domain but will instead indicate that you want to graph
a specific solution to the initial-value problem x(a)=b by Cauchy-Euler
approximation. This deviation from the normal notation is only valid for
differentials.
Section =========================================
III VVV VVV | Using AutoRedraw and the Redraw Queue |
I V V =========================================
I V V
I V V
III V o 13
------------------------------------------------------------------------
USING AutoRedraw
Whenever you change the scale to look at a graph in greater detail or
from farther back, or you shift the range of the axes so that the graph
you just drew will be centered, the screen must be cleared so that a new
coordinate grid can be drawn. So you're left with the viewing angle you
wanted for that graph, but the screen is blank. You shouldn't have to
solve this problem by retyping the whole equation again...and you don't.
You can redraw the equation much more easily by selecting Last graph in
the Redraw menu. But with AutoRedraw ON, you don't even have to do that.
As its name suggests, AutoRedraw will redraw the last equation(s) you
typed in automatically when you change the scale or range. If you don't
want a graph redrawn, you can abort it by pressing ESC twice and you
will be returned to the menu. If you want to turn off AutoRedraw
completely, just select AutoRedraw under the Options menu and answer "n"
when asked if you want AutoRedraw on.
To change the number of graphs redrawn automatically, you should also
select AutoRedraw from the menu. After responding "y" when asked if you
want it on, enter the number of graphs (1-25) that you would like to be
redrawn each time AutoRedraw is invoked. (If there aren't that many in
the queue, Graphmatica will just redraw them all.)
AutoRedraw is ON by default. You can change the default to OFF by
turning it off and using the Save Setup command to record this change in
the GRAPHMAT.INI file.
THE REDRAW QUEUE
Every time you type in an equation, the character string you typed and
the program's internal representation of that equation get stored in the
redraw queue. From this queue, or list, you can call up any of the last
25 equations you typed to graph again with fewer keystrokes than
retyping it. Or you can redraw all of them or the just the last one you
typed with even fewer keystrokes. The equations in the queue are stored
in an order that puts the most-recently-used at the beginning and the
least-recently-used at the end. Hopefully, when the queue fills up, the
equations that are bumped off the queue at the end will be the ones you
won't miss very much.
As explained above, the screen clears whenever you execute Range or a
successful Scale (if you abort Scale the screen remains as it was). If
you execute either of these functions or clear the screen accidentally
with the Clear menu option, you can redraw the last equation (if
AutoRedraw hasn't already) by selecting Last graph under Redraw, or you
can redraw all of the equations in the queue using Redraw All under the
Redraw menu. Note that the redraw function does not keep track of which
graphs are on the screen at any point in time so "redrawing all" may put
more (if you plotted many equations on the screen before the last one)
or fewer (if you cleared the queue) equations on the screen than there
were before the screen was cleared.
IV. Using AutoRedraw and the Redraw Queue 14
------------------------------------------------------------------------
The Pick graph option in the Redraw menu allows you to graph any of the
equations currently in the redraw queue. The equation-viewing is limited
to one at a time in a pop-up box. If you would like to redraw the one
shown, press enter. Or, if you have a mouse, click the left button on
the equation itself. If you want to look at more, press any other key
except Escape (or click on any point on the screen outside of the box
with the equation in it). When you have looked at all of the equations
in the queue, it recycles to the first equation again. If the equations
start looking familiar, you've probably reached the beginning again. If
you decide you don't want to redraw any of the equations presented for
your perusal, press Escape (or click the right mouse button) and the
command will be ignored. When you pick a graph, it is re-inserted at the
top of the redraw queue, as you'll likely be working with it again in
the future. So if you scale the grid again, that graph will be Auto-
Redrawn, and if you redraw the last graph, that graph will be shown.
The same function as the "Pick graph" Redraw option can also be
completed very effectively in the graph loop. After you have selected
Graph from the menu, you can scroll through every equation you have
entered into the redraw queue on the bottom line of the screen. If there
are any other equations entered, to the right of the input area will
appear an up arrow. Press the up arrow key or click the mouse on the
arrow on the screen to scroll back one equation. You will notice the
arrows on the right change to show both an up and a down, showing there
are more equations on either side of this one. When you have scrolled to
the top of the list, the up arrow will disappear. Press the down arrow
key or button to scroll back down the list if you want to. When you have
found the equation you want, press enter (do not modify the equation)
and the graph will be redrawn. You will be returned to the graph loop,
and the same equation will be displayed for editing, except now it is
the head of the queue. When you have finished redrawing, press ESC twice
to exit the graph loop.
IV. Using AutoRedraw and the Redraw Queue 15
------------------------------------------------------------------------
SAVING AND LOADING EQUATION LISTS
To save the list of equations you're working on, as well as the title
and y-axis labels if you've entered them, simply select Save List from
the Redraw menu and enter a filename. This file will be saved in the
current directory with an extension of ".GR" (for GRaphmatica) unless
you specify differently. To save to diskette, you simply have to insert
"A:" or "B:" before your filename. Longer directories may not fit. When
asked if you want to include setup information, answer "y" if you want
to record the current size of the grid and options settings in the
equation list file. Otherwise, only the text labels and equations in the
queue are saved in the file.
To reload your list of equations or load up one of the demo files
provided with Graphmatica, you have more options. You can automatically
load a file when you run Graphmatica by typing its name (with or without
a file path or the ".GR" extension) as a command-line argument. Then
those equations will be loaded up (and graphed) immediately after the
opening screen, unless the file includes the autoredraw=off statement
(see Appendix B: editing equation lists). You can also load an equation
list at any time by selecting "Load list" in the Redraw menu. You will
be presented a list of files available (if there are any) which can be
selected using the up/down arrow keys or mouse. This list includes two
special options, "[Cancel]" and "[New path]". Select cancel to return to
the menu without loading a file, and new path to change the current
directory to look for files elsewhere.
After you select a file to load, if the redraw queue is not empty, you
must decide whether to add the new file's equations to the existing
queue or replace its current contents. Answer "Y" to the prompt to clear
the queue before loading the new file, or "N" to keep it.
When the file has been loaded, if AutoRedraw is on Graphmatica will
proceed to draw all of the equations just loaded (but not the ones that
were previously in the queue, if you didn't clear it). You can abort
these by pressing ESC twice on each if you are impatient. The graph
title and Y-axis labels (if the file had any) that were loaded won't be
displayed unless you do a Print Preview (see Section VII).
If the file was saved with the Save setup option on, the grid and
special options settings recorded in the file will be loaded and set
automatically.
Section ===============================================
VVV VVV | View: Changing the appearance of the screen |
V V ===============================================
V V
V V
V o 16
------------------------------------------------------------------------
CLEARING THE SCREEN
Select Clear in the View menu to clear the screen. Everything will be
erased and the grid will then be redrawn. Remember, every equation you
have typed is still stored and can be redrawn later even after you have
cleared the screen. If an error has garbled the whole screen, here's a
hint to help regenerate it: first press ESC until the top menu bar is
refreshed, and then use Clear to redraw the rest of the screen.
CHANGING THE SCALE
The scale function allows you to change the scale of the graph you have
on-screen while keeping the center of the display the same (the origin
may move but if (2,2) is at the middle of the screen, it will stay
there). The scale is totally relative to the size of the grid that is
presently on the screen, so you need not make any comparison with an
absolute scale of 1. To rescale the grid, select "Scale" from the
options menu. Then respond to the prompt according to the following
guidelines:
Enter a positive number to zoom in, or a negative number to pan out. (In
the new Camcorder-age terminology, a positive number acts as a telephoto
and a negative as a wide-angle lens.) The number of units across the
screen will be divided or multiplied by that number accordingly. Numbers
between -1 and 1, inclusive, are invalid because they produce
meaningless values. Decimals greater than 1 or less than -1 are valid
though.
If you enter an invalid number, you will be asked again to enter the
scale. To abort rescaling, just press enter on a blank line.
ADJUSTING THE RANGE
The ability to adjust the grid by inputting the beginning and end of the
desired range is one of the most powerful and flexible features
Graphmatica offers. It can rescale the grid to either be a perfect fit
for the function you are graphing so that as much of it is visible as
possible or to render the most accurate image possible on even the
lowest resolution CGA screen. Both of these features can be accomplished
by selecting Range in the Options menu.
To create a grid such as the first, graph an equation on the standard
grid, and from that graph determine the top-, bottom-, left- and
rightmost extremities of the graph, and respond with the proper values
to the 4 Range prompts. The new grid may be somewhat expanded or
compressed depending on the aspect ratio, but it will show the same
amount of graph in much greater detail.
V. View: Changing the Appearance of the Screen 17
------------------------------------------------------------------------
To create a more accurate representation like the second grid, you can
use the AutoScale feature of Range. Just type "auto" for any of the four
coordinates and it will automatically be scaled to fit the other three.
Typically you would pick the least significant coordinate to AutoScale,
since you can match the other three exactly. If you want to show the
same amount above as below the axis, type "auto" at both of the y-
coordinate prompts and the top and bottom of the grid will be set to
properly scaled equal and opposite values. (AutoScaling of both x-
coordinates based on the height of the grid is not supported.)
AXES LEGENDS
Graphmatica has been equipped with a routine that labels the hatch marks
across the graph so you can more easily locate points or find the
coordinates of a graphed point. In some cases, though, especially when
doing graphs near the axes in monochrome CGA mode, the numbers can be
confusing and you may want to turn them off. To do this, select the
Legends option in the Options menu. To turn the legends back on, select
the Legends option again.
ADDING A TITLE TO YOUR GRAPH
If you want to add a title line to your graph, select Title from the
View menu. Since the title can be almost the width of the screen, it
can't be entered in a normal popup box, so the prompt appears on the top
line and the input field is at the bottom, where the graph prompt
usually is. You can type in a new title, edit one you typed in
previously, or delete the title by pressing enter on a blank line. When
you print (or select Print Preview from the menu), the title is written
across the top line of the screen, which the menu normally occupies, and
it is automatically centered. Do not try to center the title manually
when you are typing it in or it will interfere with the automatic
centering. When you are graphing and the menu is active, the title line
is not shown.
LABELING THE Y-AXIS WITH TEXT
Graphmatica can add text labels (regular printing going down instead of
across) to both sides of your graph. Select the "Label Y" function of
the View menu to add your own labels (there are none initially). The
length of the string you can use depends on the number of rows you
monitor has: CGA and EGA can hold 23 letters and VGA can hold 28. The
program presents you with the previous label which you can edit, discard
by pressing ESC and typing a new string, or turn off completely by
pressing ESC and then enter on the blank line. Like the title, these
labels are automatically centered (vertically) on the graph. Graphmatica
does not draw these labels instantly, since they are intended mainly to
enhance hardcopy printing, but if you want to see how the labels will
look, you can perform the Preview option under the Print menu.
Section =======================================
VVV VVV III | Viewing and Setting Special Options |
V V I =======================================
V V I
V V I
V IIIo 18
------------------------------------------------------------------------
THE DEFAULT SETTINGS
When you run Graphmatica without a GRAPHMAT.INI file, the following
settings are in effect:
Start of range: (-8.0, *)
End of range: (8.0, *)
Fineness: 1.0 **
Legends: ON Warnings: OFF
Printer: OFF AutoRedraw: ON
AutoNum: 1
Theta Range: 0 to 6.28 (2pi)
* varies depending on video mode; always equal and opposite and scaled
to provide a square aspect ratio.
** on CGA systems fineness is automatically set down to 0.75 to speed up
graphing.
This provides a basic rectangular grid of decent size with the origin
centered, a square aspect ratio (a 1x1 square on the grid really LOOKS
square), and a good resolution graph.
VIEWING THE SETTINGS
The current settings are almost always displayed whenever you change one
of them. Every item under Options (unless aborted) will bring up the
settings screen. You can also look at them manually by selecting
Settings in the Options menu.
SAVING SETUP INFORMATION
You can save your preferred grid size and settings of other user options
so that whenever you run Graphmatica again they will automatically be
restored. You can do this at any time by selecting the Save Setup item
in the Options menu. The options will be saved in the GRAPHMAT.INI file
in the current directory. If this is not where the program files are
stored, Graphmatica will not be able to find it again, so if you change
the directory using the load or save list commands, be sure to reset it
before you save the setup (or be prepared to copy this file into the
proper directory).
The setup file is just a special equation list that is loaded
automatically (if you don't specify another equation list on the command
line) when you start Graphmatica. It follows the exact same format as a
normal equation list (described in Editing Equation Lists) except that
when you save it Graphmatica leaves out the labels and the equations
(the important parts of normal equation lists). If you do want to save
equations and labels in it, use the normal save command (and answer "y"
when asked if you want to save setup information), and just enter the
filename GRAPHMAT.INI.
When Graphmatica saves your options, to simplify things it only records
those options that are different from its own internal defaults. (See
Default Settings for a list of these.) If your settings are close to the
defaults, your setup file will be very short.
VI. Viewing and Setting Special Options 19
------------------------------------------------------------------------
CHANGING THE RANGE OF THETA
Because the independent variable (theta) in polar coordinates is
fundamentally different from the 'x' of Cartesian coordinates, the
Cartesian x/y ranges can only be used to determine the size of the
screen and not the domain of the equation graphed for polar graphs.
Although the default 0 to 2pi range is the typical range of theta used
for most graphs that go on forever (like spirals) and some closed graphs
(like circles), other graphs cannot be completely drawn in this range of
theta. For instance, the figure-8-shaped "r^2=64cos(2t)", because it is
undefined where the right half is less than zero, is missing a couple of
spots unless theta's range is extended to -2pi to 2pi. To allow the
greatest flexibility, Graphmatica allows theta's range to be changed
independently of all other options.
To change the range, select "T range" under the Options menu and enter
the start and end of the range you want (or press enter on the blank
line to keep the current range). Although Graphmatica works exclusively
with radians, you can enter the range in either radians, degrees, or
radian multiples of pi. (Decimals are allowed, but no fractions can be
entered.) To indicate a value is a degree measure, follow it with a 'd'
(any numbers after the 'd' are ignored). To indicate it is a multiple of
pi, follow it with a 'p' (again, 'p' must be the last character in your
response). A plain number will be understood to be regular radians. You
cannot use both the 'p' and 'd' options at once, but it would be
ridiculous to measure degrees in multiples of pi anyway. So, to enter
the range mentioned above, you would type "-2p" at the first prompt, and
"2p" at the second.
If you would rather not change the default domain but simply change the
domain for a single graph, see Section II "Specifying a Domain".
VI. Viewing and Setting Special Options 20
------------------------------------------------------------------------
ADJUSTING THE FINENESS
The fineness factor determines how high the resolution of the graph will
be, and in effect, also the amount of time it takes to complete the
graph. The fineness factor of 1 is quite adequate in most circumstances.
With the addition of SmartFineness automatic fineness adjustment to the
line-drawing feature in the graph-drawing loop, the manual fineness
adjustment has become almost obsolete, but I left it in to accommodate
the need for especially sharp graphs or for especially quick renderings.
SmartFineness automatically decreases the fineness when the point being
graphed is not on the screen to speed up blank areas, then recovers
automatically and backtracks to the spot where the graph comes on-screen
again. It also varies the fineness with the slope of the equation being
graphed--less when the slope is near-horizontal, greater when the slope
tends toward vertical, so steep graphs are tracked more effectively. As
the fineness is increased, more of the curve will be smoothed out, but
remember that if you increase the fineness factor to 5, the computer
will be slowed down to 1/5 its normal graphing speed under the load of
all the extra calculations. A factor greater than 10 can bring even the
fastest 386 computer to a snail's pace.
If you have CGA adapter, Graphmatica assumes you are using an 8088 non-
turbo PC and reduces the fineness to 0.75 to speed up graphing; the
difference in resolution is usually not very noticeable on the CGA
screen, but the difference in speed is.
Fineness is also linked to the rate at which the angle is allowed to
change in polar graphs, and both Cartesian and Polar graphs will be of
comparable quality at the same fineness factor. Fineness is also linked
to the step rate of parametric graphs; because they vary so much, it is
harder to insure that all parametrics will graph well at the default
fineness, but those that I have tested look fine.
To change the fineness factor, select Fineness from the Options menu.
Any value greater than zero is valid; however I would recommend not
going below 0.25, as the image quality suffers and the graphs begin to
look like modern art.
WARNING MESSAGES
By default, the error messages which do not require the equation to be
retyped are suppressed, because they slow down the graphing process,
cover up the equation, and are somewhat annoying when you know the graph
shouldn't produce any values in some area. (Also, it saves you the
effort of specifying the domain for each equation.) If something goes
wrong (e.g. the graph doesn't show up on screen when it should and the
reason isn't readily apparent), you can turn on the warning messages
(using the Warnings function of the Options menu) and redraw it to see
what the problem is. You can use the same menu option to turn the
messages off later.
Section ====================================
VVV VVV III III | Using a Printer with Graphmatica |
V V I I ====================================
V V I I
V V I I
V III IIIo 21
------------------------------------------------------------------------
PRINTING PICTURES OF YOUR GRAPHS
Graphmatica includes an internal printing function which works with CGA,
EGA, and VGA under any version of DOS _without_ loading the DOS utility
GRAPHICS.COM. If you have an IBM, Epson, or compatible dot-matrix
graphics-capable printer or a laser printer with Epson emulation, this
routine should work fine. (If you have a LaserJet or compatible, use the
LaserJet routine.) Graphmatica does not check the printer's status, so
you must have it on before you try to print. Select the Graphs function
from the Print menu and all the graphs on the screen will be printed on
the printer, with the top of the screen at the top of the paper. At the
bottom of the page, it prints a list of the equations for the graphs
Graphmatica thinks are presently on the screen. All graphs you have
drawn since the last time the screen was cleared, except ones that you
aborted by pressing ESC are included in this list.
If you want to abort the printing process, press ESC. Don't turn off or
reset the printer until the "Printing..." message at the bottom of the
screen is gone or DOS may print an error message and mess up the screen.
The output is as close to what you see on the screen as I can make it,
but at VGA resolution it may seem rather stretched out because most
printers can't print lines any wider and I cannot make that printout any
shorter without deleting lines and harming the resolution. The size of
the printout will vary between different monitor types because to make
the grid square, I had to expand the x axis different amounts to make up
for the different vertical resolutions. For CGA mode, the x direction is
expanded by 33% and the y by 100%. For EGA, the x is expanded by 20% and
the y remains as it was read off the screen. For VGA, the x is expanded
50% and the y remains as-is. Since it is expanded the least and has a
nearly square grid, the EGA resolution printout is probably the best you
can get with a dot-matrix printer. If you have a VGA monitor and want to
print graphs at the EGA resolution, you can use the "/E" command-line
switch to force the program to run in EGA mode (see Appendix A).
VII. Using a Printer with Graphmatica 22
------------------------------------------------------------------------
LaserJet COMMAND
This version of the print routine should work for all Hewlett Packard
LaserJet and DeskJet printers and most others compatible with the HP
Printer Control Language Level III. This should include almost all PC
laser printers. The routine works in much the same way as the dot-matrix
print routine, except it produces crisper, more compact images due to
the superior resolution. The VGA image will print the best with a laser
printer: every point is mapped on a one-to-one basis due to the square
aspect ratios of both the screen and printer. EGA and CGA images are
scaled accordingly so the output isn't squashed, and they print graphics
that are not as sharp but still much better than dot-matrix output.
NOTE --> Graphmatica assumes your printer resides at LPT1:. If your
printer is not connected to the parallel port but to the serial port
instead, you must use the DOS mode command to redirect the output if you
want to use the printer. For most people, the command would be
C:\>mode lpt1 = com1
You need to use this command only once before you run Graphmatica; DOS
will remember the redirection until you shut off the computer or reboot.
NOTE --> If you have a color printer and a version of GRAPHICS.COM that
produce legible output from a printscreen, you may want to load GRAPHICS
and just press Shift-PrtSc while in "Preview" mode instead of using the
print option. (It can only print in black and white.)
PRINT PREVIEW
To see how the screen will look when it is printed, simply select the
Preview option from the Print menu. The menu bar and help line will
clear, and the graph title and y-axis labels (if any) will be drawn on
the screen. If you have a color printer that works better with an
external print screen function, this is the perfect time to press the
Print Screen button (if you have a mouse, be sure to hide the arrow at
the bottom of the screen first). In any case, you can look at it as long
as you need to. When you want to return to work, just press any key or
mouse button and the menu will reappear. (The side labels are not
erased, however; they must be cleared manually.
PRINTING VALUES
This feature allows you to print out a table of coordinates as the
program is drawing your graph. This option is available to aid the
drawing of graphs manually (if you happen to be cheating on your
homework) and provide a reference for labeling the axes if you print the
graph without the legends on (using the Print menu item described on the
previous page).
By default, the print tables option is OFF; most people don't leave
their printer on at all times and the process does slow graphing a bit.
You can turn it on by selecting Tables in the Print menu and responding
"y" to the prompt.
Appendix ========================================
AAAA | Graphmatica's Command Line Arguments |
A A ========================================
AAAAAA
A A
A Ao 23
------------------------------------------------------------------------
With the introduction of the new GRAPHMAT.INI file, which will not only
save your preferred options automatically from inside Graphmatica but
will also reset them automatically the next time you run the program,
most of the command line arguments that GraphIt! version 2.80 supported
have been removed. [Although you shouldn't need to edit the setup file
yourself at all, its format is described in Appendix B.] The remaining
command line arguments are described below.
All arguments are NOT case sensitive (i.e. "/E" is the same as "/e").
Arguments must be separated by one or more spaces on the command line.
Excluding filenames, all arguments begin with the standard MS-DOS
"switch" character ("/"). UNIX-style switches (starting with "-") are
NOT supported. Unidentifiable command line arguments may cause the
message 'Unknown argument "XXXXX" ignored. Press any key...' to be shown
on the bottom line of the screen. Command-line options are listed in
alphabetical order below.
/E Force EGA mode
---------------------------
If you have a VGA adapter and want to force Graphmatica into EGA mode
for its better printer output, use this option. It has no effect on
an EGA monitor and will cause an error on a CGA system.
/G:xxxxxx Graph Equation
-------------------------------
If you want to start up Graphmatica by automatically graphing one or
more equations, use the /G: option. The only limits on the number
of equations you can include on the command line are the capacity
of the redraw queue (25 equations) and, of course, the maximum
length of the command line (I think it's around 128 characters).
The equation(s) will be parsed and graphed in exactly the same way
as the regular prompted input, with one exception: if you want to
include any spaces in the equation, you must enclose the whole
"/G:xxxx" string in quotation marks or the spaces will be
interpreted as delimiters between arguments. Any other options on
the command line (range, scale, fineness, etc.) will be executed
BEFORE the equation is graphed. As the Graphmatica editor is far
superior to the DOS command line editor, this option has limited
usefulness, but it is a good interface for execution from a batch
file.
filename[.ext]
--------------
Specifying the name of a valid equation list file (with or without
the ".GR" extension) loads that file upon startup. Unless
AUTOREDRAW=OFF is specified in the [options] section of the file
loaded (assuming it has one), the graphs are drawn as soon as the
opening screen is gone. If you load a file in this manner,
GRAPHMAT.INI is NOT loaded.
Appendix ===========================================
BBBB | EDITING EQUATION LISTS AND GRAPHMAT.INI |
B B ===========================================
BBBB
B B
BBBB o 24
----------------------------------------------------------------------
Graphmatica does not really provide facilities for maintaining equation
lists; although you can edit an equation and change the order of
equations by redrawing selected graphs, determining the precise order of
equations in the list is difficult since they are dynamically shuffled
each time an equation is entered or redrawn to make Graphmatica more
interactive. However, the equation list is just a text file whose
structure is virtually identical to the win.ini file, you can create or
modify one with virtually any editor. The structure goes like this:
(sections in parentheses are explanations; don't type them in.)
[labels]
title = xxxx (any character string, up to 76 chars.)
left = xxxx
right = xxxx
[grid]
left = #.## (left side of grid) (any decimal number)
right = #.## (right " " ") (or "auto" to autoscale)
top = #.## (top of grid)
bottom = #.## (bottom of grid)
[options]
autoredraw = on or off (controls AutoRedraw) ("on" or "off")
autonum = ## (number of equations to A.R.) (any integer 0-25)
_legends = on or off _(controls axis legends (numbers))
| hogcpu = on or off |
| mono = on or off | valid under Graphmatica for Windows ONLY
| autosquare = on or off | Graphmatica for DOS ignores these 4 settings
|_labels = on or off _|
tables = on or off (controls print tables feature)
warnings = on or off (controls warning error messages)
defscale = #.## (default for "Scale" prompt - any decimal number)
fineness = #.## (default fineness value)
tstart = #.## (default start of theta's domain)
tstop = #.## (default end of theta's domain)
[equations]
(up to 25 equations, each up to 68 characters, each on a separate line.)
The [labels] section specifies the title and y-axis labels. The [grid]
section gives the left, right, top and bottom coordinates of the grid.
Type "auto" for any one to auto-scale that coordinate based on the other
three. Type auto for both the top and bottom to auto-scale the y-axis so
the top and bottom coordinates are equal and opposite.
B. Editing equation lists and GRAPHMAT.INI 25
------------------------------------------------------------------------
You can omit any item or even a complete section if you don't want to
change the default. Type exactly as specified above, including the
brackets "[ ]" around the section headings, but replacing the values on
the right side of the equals signs with your own values. If you don't
know or don't care what the value is for an option, just leave the line
out. Don't worry about capitalization, extra spaces, or even extra blank
lines. (However, each entry must be on a separate line or some may be
ignored.) You can put the options and sections in any order ... the only
requirement is that the [equations] section must come last, if there is
one. Invalid options are also ignored.
If you want to create a file with no titles or options, simply type the
"[equations]" header and then type all of your equations. Each equation
must be on a separate line. There is one catch, however: since
Graphmatica graphs the most recently entered equation first when it
redraws, when the list is loaded and graphed, the equation listed LAST
will be graphed FIRST. (It is certainly possible to correct this
situation by graphing the equations as they come in, but then every
subsequent "redraw all" command would draw the list backwards anyway.)
If you load an equation list and immediately save it without changing
anything, the net effect will be that the order of the equations in the
file is reversed.
The GRAPHMAT.INI file, which is loaded whenever you run Graphmatica
without specifying an equation list to load, uses the exact same
format... when you choose the Save Setup command, Graphmatica simply
saves the setup file as it would an equation list, except the [labels]
and [equations] sections are omitted, since you probably don't want to
have the same graph title and equations load up automatically forever
and ever.
CONVERTING OLD EQUATION LISTS
To convert equation lists from GraphIt! for DOS version 2.80, load the
file in any text editor and make the following changes: [Graphmatica for
Windows 1.0 files are identical to 3.0 for DOS files.]
If there are titles in the file, add a [labels] header to the top,
insert a title= before the first line, left= before the second, and
right= before the third.
Insert a new line and type the [equations] header line before the
equations.
That's it. You can now load the file up in Graphmatica and resave it
with the save setup option to save a specific grid or other options
along with the equations.
Appendix ====================================
CCCC | Upgrade Notes: Changes from 2.80 |
C ====================================
C
C
CCCC o 26
----------------------------------------------------------------------
While I have minimized any changes to the user interface in Graphmatica
version 3.0, this new release does include a significant number of new
features that make it more powerful and flexible than any previous one.
Please take a minute to acquaint yourself with these features:
1. Graphmatica enters the portable age. Although Graphmatica may look
basically the same on the outside, it has undergone massive internal
restructuring to make the core code portable between different
computers. Graphmatica for Windows is available now if you have Windows
3.0. Versions for other platforms may follow.
2. No more command-line arguments (well, pretty much). You can still
specify a file to load on startup using the "filename" argument. All
other options are set automatically to the settings in GRAPHMAT.INI
(if it exists; otherwise the defaults are used). You can edit this
manually or have Graphmatica save it for you.
3. New equation list format. Equation lists are stored in the same
"win.ini" type format used for GRAPHMAT.INI. This allows you to save
your current setup (i.e. grid dimensions and options settings) along
with your equations and title. A simple conversion process
(described in Appendix B) is required to use version 2.80 files.
4. All graphs turbocharged by SmartFineness III. The addition of end-
of-domain checking and fineness adjustment makes sure your graphs
reach the end of their domain and allows me to double the base step
rate for normal cartesian graphs, meaning they will graph twice as
fast with little noticeable loss of quality.
5. Two styles of approximating solutions to differential equations:
slope-field and Cauchy-Euler graphs of 1st order differential
equations have been added. See the end of Section III for details.
6. Extra trig function support: sec, csc, cot, and their inverses asec,
acsc, and acot have been added to the functions supported. No more
typing 1/cos etc.
7. Instant redraw from points instead of recalculating: When you use
the on-line help, change the legends on/off setting in CGA mode, or
redraw a graph when the grid has been cleared but not changed in
size, Graphmatica will redraw your graphs immediately from memory
without recalculating, so you save time.
8. You can now set the number of graphs that are redrawn automatically
whenever you resize the grid to any number from 1 to 25.
9. Improved AutoScale feature when you select a range: you can now
AutoScale any of the four coordinates, not just the bottom one. You
can also scale both the top and bottom at once.
10.Improved grid-drawing can now paint lines at fractional intervals,
not just whole numbers. Also grid does not become "scrunched" so
much as you zoom out.
11.Bugs fixed: GraphIt! 2.80 on rare occasions trapped users in an
endless loop of refreshing the menu bar for no reason. This and a
bug that at low fineness levels caused the graph to be drawn
endlessly backwards past the start of the domain have been fixed.
Sorry if they caused anyone any trouble.
I hope you find these new features beneficial. If you'd like to support
future versions with your comments and suggestions, see Appendix D for
the mail-in survey form.
Appendix ==========================
DDDDD | Shareware / Order Form |
D D ==========================
D D
D D
DDDDD o 27
----------------------------------------------------------------------
Shareware: Feel free to distribute copies of Graphmatica to your friends
and upload to BBS's where others can donwload it AS LONG AS 1) you
charge no fees for its use or distribution and 2) you do not modify the
program or documentation files in any way.
[Shareware catalogs have permission to distribute this product for no
more than $5 a copy. However, please contact me to make sure you have
the latest version before you do so.]
This program is to be taken AS IS with no warranties, express or
implied. There are several bugs I know of, most of which have to do with
error messages I cannot keep the library functions from printing, but no
serious bugs that could cause loss of data or even a system crash.
Please tell me about any bugs you may find that I should correct for the
next release.
If this file is over six months old, Graphmatica has probably been
upgraded. Look for a newer version on CompuServe or contact me. For $5 I
will send you a disk with the latest version (you can decide whether to
register AFTER you get it).
If, after using Graphmatica, you find that it is easy, helpful, and
convenient to use, please support the release of future versions by
filling out the registration form on the next page and sending your
contribution (payable to Keith Hertzer) to the address below:
kSoft, Inc.
345 Montecillo Dr.
Walnut Creek, CA 94595-2613
If you send $20 or more, you will be registered to receive a diskette
with the next versions of Graphmatica for DOS and Windows when they
become available, along with promotional copies of other kSoft programs.
For releases after that, you will be informed that a new version is
available and how you can get it.
Even if you cannot send any money, please help me out by filling out the
response form below, especially if you have any suggestions about what I
should add to the next upgrade.
Graphmatica is now supported via CompuServe. If you are a member, look
for new versions in the Math and Science forum ("GO SCIENCE") and feel
free to send me feedback at any time at User ID 70711,2071.
WHAT'S NEXT? When I wrote Graphmatica for Windows, I added a bunch of
new features just because they were so easy to implement in that
environment. The ones that I could I ported back to DOS (like the
GRAPHMAT.INI setup file). If I have the time and ambition, I will try to
add some of the harder-to-implement features to the DOS version. But I'm
also still open to suggestions, if you can tell me what to look at.
If you would like a copy of the source code for Graphmatica for DOS
(compiled under Microsoft QuickC version 2.5), please send me $20 and a
short note telling why you would like it.
--G3.0---------------------kSoft REGISTRATION FORM---------------------1/92--
Name &
Company ____________________________________ Phone _______________________
Address _____________________________________________________________________
City ________________________________ State _______ ZIP _______________
_
|_| Enclosed is my $20 or more contribution. Please register me to
receive the next upgrade to Graphmatica for DOS.
_
|_| Enclosed is my $20 or more contribution. I want Graphmatica for Windows
NOW! Please use my upgrade credit to send me the current version.
_
|_| Please send me the source code [for QuickC 2.5] to Graphmatica for DOS
3.0. I have enclosed a note on why I'd like it and a check for $20.
------------------(make checks payable to KEITH HERTZER)---------------------
What size diskettes do you use? 5 1/4" 3 1/2"
Where did you get Graphmatica? (name of BBS or catalog: ________________)
From a friend Local BBS CompuServe Shareware Catalog
What processor are you using to run Graphmatica ? (circle one)
8088/8086 286 386sx 386/486 Other (___________)
What DOS version do you usually run with Graphmatica? PC / MS ____ . ____
If you use a printer with Graphmatica, what type is it?
dot-matrix ink jet laser Other (___________)
What type of video card do you have? Mono CGA
EGA VGA SVGA Other (___________)
What features do you like best about Graphmatica?
_____________________________________________________________________________
_____________________________________________________________________________
What problems have you experienced with Graphmatica?
_____________________________________________________________________________
_____________________________________________________________________________
Any other comments or suggestions for improvement in the next upgrade?
(Your comments are vital so I will know what to change or add. Please
feel free to use the back or another sheet of paper.)
_____________________________________________________________________________
_____________________________________________________________________________
Please send to: kSoft, Inc., 345 Montecillo Dr., Walnut Creek, CA 94595-2613.