home *** CD-ROM | disk | FTP | other *** search
-
-
-
- AmigaPlot V1.0 Joe Martin 7/15/87 (C)Copyright 1987
-
- *******************************************************************************
-
- This program is not public domain. All rights retained. Permision is
- granted to freely distribute this program through the BBS systems. Charges
- for such distribution are NOT permitted.
-
- *******************************************************************************
-
-
- AmigaPlot is a three dimesional mathematical function plotter. It takes
- a function, derived by the user, parses it into a partially compiled
- form and then calculates coordinates to be placed in the xyz system. AmigaPlot
- use hidden line removal based on a principle known as the painters algorithm.
- Each time AmigaPlot goes to the screen it places a filled polygon. Starting
- from the most distant part of the plot it is constantly placing filled
- polygons in front of other polygons there by covering the hidden portions of
- the plot. Many aspects of the plot are user variable so that almost any
- combination of rotations, perspectives, and parameters for any function can
- produce infinite results. AmigaPlot is not intended for statistical analysis
- and the precision of the plot or its scale are not guaranteed.
- The use of color in the plot can produce very pleasing effects
- especially when a feathered pallet is used. The whole idea of AmigaPlot was to
- provide an artistic approach to the sometimes dry subjects of Analytical
- Geometry and Trigonometry.
-
-
- AmigaPlot was compiled on the Aztec C Compiler 3.4
- **** Minimum memory 512K - it uses most of it *****
- ************ 1 or 2 meg recommended **************
-
- Address any questions, comments or bugs to:
-
- Joe Martin
- FWB Exchange 1-904-651-8908
- Hobbit Hole 1-904-243-6219
-
- or
-
- Joe Martin
- 2702 Willow Grove Ln.
- Ft. Walton Bch. Fl 32548
-
- ******************************************************************************
-
- known bugs:
-
- 1-sometimes after numerous menu selections the Guru.(???)
- 2-some functions can produce values out of range.
- 3-extreme values can burden the Amiga clipping routines by overwriting
- memory ! (I've tried to help them out a little)
-
- I'm working on better error checking but it'll be slow to come.
- The Parser does very little error checking right now so watch your
- spelling on trig function names.
-
- ******************************************************************************
-
-
-
- Let's get to it !
-
- ********** First MAKE SURE YOUR STACK IS SET TO AT LEAST 20000 **************
-
- AmigaPlot is initialized at the CLI by 'Run Plot' (don't forget to set stack
- 20000 first !)
- Three windows appear-
- 1- AmigaPlot window - for the plots.
- 2- Parms window - gadgets to select and change parameters.
- 3- Function window - for function input only.
-
- When the Parms window is active there are three menus available for some
- parmameter changes, color etc.
-
-
- Parms Window:
-
- Gadgets:
- Start starts plot
-
- Stop stops plot in progress. Any parameter changes will go
- into effect when the plot is restarted.
-
- YRot changes perspective about the Y axis. range 0.0 - 0.8
- XRot changes perspective about the X axis. range 0.4 - 1.8
-
- Object changes depth perspective in conjuction with Image
- distance from viewer to object
- Image changes depth perspective in conjuction with Object
- distance from viewer to Image
-
- XRan This number represents the the outside dimensions of the loop
- which will provide a value for the 'X' variable in the function.
- Ex XRan: 10 means a loop from -10 to 10
- YRan Dimensions the loop for the Y variable in the function
-
- Suggested ranges are from 25 down to 1. Larger than range 25 with .2 increments
- will overflow the internal array variable.
-
- XIncr the step increment for the XRan loop .2 - 4
- YIncr the step increment for the YRan loop .2 - 4
-
- Adjusting the X and Y increments will give the plot a smooth or jagged
- appearence on most plots. Smaller increments take a lot longer to plot(much
- more computing), but produce better pictures.
-
- XTrans this moves the center of the plot about the X axis
- YTrans this moves the center of the plot about the Y axis
-
- ScX this will adjust the width of the plot by the Scale factor
- ScY this will adjust the height of the plot by the Scale factor
-
-
- Function Gadget:
-
- Edit: same as for any string gadget - cursor keys, del, backSp etc.
-
- operations : +,-,*,/ divsion by zero is trapped.
- ^ to the power of
-
- functions : ABS() absolute value of
- SQRT() Square root of
- SQR() Square of
- SIN() Sine of
- ASIN() ArcSine of
- COS() Cosine of
- ACOS() ArcCosine of
- TAN() Tangent of
- ATAN() Arctangent of
- LN() Natural Logarithm of
- LOG() Base 10 Log of
- EXP() Exponential of
-
- Parms Menus:
-
- File - Quit Quit AmigaPlot (bye)
-
- Parameters - Same as the Parms gadgets(just for convience)
-
- Display -
-
- Color Map - User selects color palette
- ColorSpan - User selects color position/span(what heigth you want each color
- to kick in.
- XHatch - Outlines complete polygon on screen
- Spec.Parms - Two gadgets:
- Clip TAN - This is an adjustment for the TAN function which usually
- produces very high values(out off range). You can
- adjust the tops of these spikes.
- Scale/0 - This one can adjust any case of division by zero. In other
- words, instead of dividing by zero(which is undefined)
- you can divide by the scale value.
-
-
- ******************************************************************************
-
- Here are some sample functions :
-
- 1) COS((X^2+Y^2)/10)
- Object:50 Image:650 XRange:10 YRange:10 XYIncr:.5
-
- 2) 2*SIN((X^2-Y^2)/10)
- Object:50 Image:650 XRange:10 YRange:10 XYIncr:.5
-
- 3) .005*((X/Y)^2-(Y/X)^2)
- Object:50 Image:650 XRange:10 YRange:10 XYIncr:.5
-
- 4) 3*SIN(-.05*(X^2-Y^2))-2*COS(.1*(X^2+Y^2))
- Object:50 Image:650 XRange:10 YRange:10 XYIncr:.5
-
- 5) 4*(5*EXP(-(X^2+Y^2)/60)*SIN((X^2-Y^2)/10))
- Object:130 Image:750 XRange:20 YRange:20 XYIncr:.5
-
- 6) TAN((X^2+Y^2)/50)
- Object:80 Image:750 XRange:12 YRange:12 XYIncr:.5
-
-
- **** Have Fun ****
-