Plot4.1, a 3-D function plotting program © 1988 by Terry W. Gintz. I am releasing this program as Shareware, (not into Public Domain) freely redistributable. Enjoy using this program and pass it on to a friend. If you want to encourage the production of others like it, or need help with how it works, send me a small donation to the below address. Terry W. Gintz 4237 Marcum Lane Eugene, OR 97402 Plot4.1 is a major revision of the previous public-domain program by the same author. The plotting is now over three times as fast (using the Motorola FFP library.) A single window with proportional gadgets replaces most of the menus in the previous version, plus expands and adds features not available before. About the menus and new options: On the main menu: New Formula calls up a formula window containing the main formula gadget, four parameter substitution gadgets and a title gadget. The four smaller string gadgets are labeled D,E,F and G. Use these to enter mini-formulas to use in the main formula. Thus, D might be entered as X+Y. The main formula could be written SIN d. The program would then compute and plot the equivalent formula sin(x+y), which could be used in the title gadget to label the plot. Do not use forward referencing in the sustitution gadgets. The functions d-g are calculated in real time, so d will be calculated before g. G could be written as sin d, where d might have the formula x+y. However if d were written as sin g, where g was X+Y, the plot would appear to work, but it would jag due to inaccurate data on the previous pass. For the same reason recursion does not work. Use of square root should not be embedded in a mini-function. If d = SQR x and e = 2d and the main formula is Sin E only the positive values of SQR x will be plotted. Stop Plotting halts the drawing after New Plot or New Formula have initialized a new drawing cycle. Use erase screen to clear the background before drawing a new plot. The screen is not cleared automatically before each plot to allow one to compare similiar plots side-by-side. The plot title is printed on the screen for subsequent plots one line up from the previous one, until the screen is erased. The title will then be drawn at the bottom left of the screen. Use save function to save a configuration for future recall. This saves all the slider options described below, all the substitution formulas and the main formula plus the plot title, so that unusual plots can be easily shared between Plot users. Load function loads a previously saved function configuration. After the file is loaded, the set-options window is displayed. Click on Okay to set the new options. Then the formula window is shown. Click on Okay to set the new formula. Use New Plot to show the new function. The 'Set Options' window called up by the second menu, contains 13 slider- type gadgets for setting up variables to handle most plotting requirements. Spin defines the amount of x axis rotation, and tip defines the amount of y axis rotation used in displaying the plot. Defaults are 205° and 155°, respectively. Z-Axis is normally perpendicular to the other planes, or 90°. Vary for special effects. Limits are 0 to 360 degrees for each axis. Magx and Magy determine the overall magnification on the x and y dimensions. Some formulas require more or less magnification to view well. Limits are .1 to 100X. X Steps and Y Steps determine the spacing between dots and rows on the screen. Vary 1-300 for increasing resolution. Generally a much smaller number of Y steps than X Steps is required for clarity. Use 1 step to see the function in two rather than three dimensions. Minx, Miny, Maxx, Maxxy are the ranges for the loops that determine which numbers (angles) are scanned to produce the plot. Provision is made for PI -PI, -2*PI and 2*PI on the sliders, so accurate plotting can be made on trig functions. Limits are -20 to 20 radians. Minz and Maxz set the maximum z factor. This is usually the value of the main formula before scaling occurs. Therefore, it is possible to plot cones that look like textbook examples without the exponential curl at the edges. Limits can be set from -50 to 50. When plotting new formulas with 'New Plot' and 'New Formula' use the green cursor to locate the plot on the screen, clicking the left mouse button to start plotting. Use 'New Formula' to enter your own formula. The program treats parenthesis as blank space. The trig functions translated include sine, arc sine (asn),cosine, arc cosine (acs), tangent, and arc tangent(atn). The math functions are *,-,/, and +, plus SQR (square root). Note: Range limits may exist for arc sine, arc cosine and arc tangent. The Manx limits are 0 to pi for arc cosine, -pi/2 to pi/2 for arc tangent and arc sine. If you use a loop range greater than this, the function could return an arbitrary value. (These are the ranges specified by Manx for its standard arc functions. The FFP library may have different limits.) Syntax for an acceptable formula is AS([XY])+bs([xy])... .up to 60 characters per formula. Also, SQR(formula) is acceptable. The below information applies to the main formula as well as mini-formulas. However, bear in mind the mini-formulas were added to overcome some of the limitations of original plot parser. The squareroot function "SQR" is available for use in formulas on a limited basis. "SQR" must be the first 3 characters in any formula that uses it, and the parser interprets this as meaning the square root of the entire formula. That is, it calculates everything else in the formula first, then takes the square root of it. It is thus possible to plot much more intricate functions, like "SQR(atn(x)*cos(x)+cos(y))"! However, the function "SQR(sin(x))+sin(y)" would be interpreted as "SQR(sin(x)+sin(y))"! A and B are optional constants, 0 to 9, (no floating point supported; a number over 9 is treated as two or more numbers multiplied -- hence 99 = 9*9 or 81 to the parser), S is an optional trig function (1 or three letters, the first letter will work, except with the arc functions and square root--use the 3 letter abbreviations above.) X and Y are the standard variables (or use d-g in place of parenthesis with the additional string gadgets). The '+' could be any of the four math functions. Parenthesis is treated as blank space, but useful for titles-- therefore cos(x)*cos(y) works as well as cx cy but cos(x+y) doesn't work. Use the equivalent formula cos x cos y - sin x sin y. Use the math operators mainly to separate expressions of a complex function, such as x/2 - sin y. Use of math operators inside trig expressions is not supported. However, some limited multiplication inside factors can be done using implied multiplication, such as 2 sin 2xy. Note: the expression 'x*x+y*y' doesn't work because the parser interprets this as '(xx+y)*y', (use 'xx+yy'). Don't nest trig functions. 4x*cos(x)+tan(x) works as well as 4xcx+tx, but tan(cos(xy)) doesn't work. Use Line Plot to produce a plot that connects the space between dots. Generally, you reverse the amount of x and y steps from a point-by-point plot. The advantages of a line plot are a faster plot(though cruder with fewer steps), and more continuity (some plots do not become continuous even with the maximum number of steps on a point-by-point basis.) Use Two Pass to plot a cross pattern on the previous one to enhance viewability on some plots.