home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 064.lha / AmigaPlot.doc < prev    next >
Encoding:
Text File  |  1986-11-06  |  5.9 KB  |  183 lines

  1.  
  2.  
  3.  
  4.         AmigaPlot V1.0 Joe Martin 7/15/87  (C)Copyright 1987
  5.  
  6. *******************************************************************************
  7.  
  8.     This program is not public domain. All rights retained. Permision is
  9. granted to freely distribute this program through the BBS systems. Charges
  10. for such distribution are NOT permitted. 
  11.  
  12. *******************************************************************************
  13.  
  14.  
  15.     AmigaPlot is a three dimesional mathematical function plotter. It takes
  16. a function, derived by the user, parses it into a partially compiled
  17. form and then calculates coordinates to be placed in the xyz system. AmigaPlot
  18. use hidden line removal based on a principle known as the painters algorithm.
  19. Each time AmigaPlot goes to the screen it places a filled polygon. Starting
  20. from the most distant part of the plot it is constantly placing filled
  21. polygons in front of other polygons there by covering the hidden portions of
  22. the plot. Many aspects of the plot are user variable so that almost any
  23. combination of rotations, perspectives, and parameters for any function can
  24. produce infinite results. AmigaPlot is not intended for statistical analysis
  25. and the precision of the plot or its scale are not guaranteed.
  26.     The use of color in the plot can produce very pleasing effects
  27. especially when a feathered pallet is used. The whole idea of AmigaPlot was to
  28. provide an artistic approach to the sometimes dry subjects of Analytical
  29. Geometry and Trigonometry.
  30.  
  31.  
  32.     AmigaPlot was compiled on the Aztec C Compiler 3.4
  33.     **** Minimum memory 512K - it uses most of it *****
  34.     ************ 1 or 2 meg recommended **************
  35.  
  36.     Address any questions, comments or bugs to:
  37.  
  38.         Joe Martin
  39.         FWB Exchange 1-904-651-8908
  40.         Hobbit Hole  1-904-243-6219
  41.  
  42.             or
  43.         
  44.         Joe Martin
  45.         2702 Willow Grove Ln.
  46.         Ft. Walton Bch. Fl 32548
  47.  
  48. ******************************************************************************
  49.  
  50. known bugs:
  51.  
  52.     1-sometimes after numerous menu selections the Guru.(???)
  53.     2-some functions can produce values out of range.
  54.     3-extreme values can burden the Amiga clipping routines by overwriting
  55.         memory ! (I've tried to help them out a little)
  56.     
  57.     I'm working on better error checking but it'll be slow to come.
  58.     The Parser does very little error checking right now so watch your
  59.         spelling on trig function names.
  60.  
  61. ******************************************************************************
  62.     
  63.  
  64.  
  65. Let's get to it !
  66.  
  67. ********** First MAKE SURE YOUR STACK IS SET TO AT LEAST 20000 **************
  68.  
  69. AmigaPlot is initialized at the CLI by 'Run Plot' (don't forget to set stack
  70.                             20000 first !)
  71. Three windows appear-
  72.     1- AmigaPlot window - for the plots.
  73.     2- Parms window     - gadgets to select and change parameters.
  74.     3- Function window  - for function input only.
  75.  
  76. When the Parms window is active there are three menus available for some
  77. parmameter changes, color etc.
  78.  
  79.  
  80. Parms Window:
  81.  
  82. Gadgets: 
  83.     Start    starts plot
  84.  
  85.     Stop      stops plot in progress. Any parameter changes will go
  86.         into effect when the plot is restarted.
  87.  
  88.     YRot    changes perspective about the Y axis. range 0.0 - 0.8 
  89.     XRot    changes perspective about the X axis. range 0.4 - 1.8 
  90.  
  91.     Object  changes depth perspective in conjuction with Image
  92.         distance from viewer to object
  93.     Image    changes depth perspective in conjuction with Object
  94.         distance from viewer to Image
  95.     
  96.     XRan    This number represents the the outside dimensions of the loop
  97.         which will provide a value for the 'X' variable in the function.
  98.         Ex XRan: 10 means a loop from -10 to 10
  99.     YRan    Dimensions the loop for the Y variable in the function
  100.  
  101. Suggested ranges are from 25 down to 1. Larger than range 25 with .2 increments
  102. will overflow the internal array variable.
  103.  
  104.     XIncr    the step increment for the XRan loop .2 - 4
  105.     YIncr    the step increment for the YRan loop .2 - 4
  106.  
  107. Adjusting the X and Y increments will give the plot a smooth or jagged
  108. appearence on most plots. Smaller increments take a lot longer to plot(much
  109. more computing), but produce better pictures.
  110.  
  111.     XTrans    this moves the center of the plot about the X axis
  112.     YTrans    this moves the center of the plot about the Y axis
  113.  
  114.     ScX    this will adjust the width of the plot by the Scale factor
  115.     ScY    this will adjust the height of the plot by the Scale factor
  116.  
  117.  
  118. Function Gadget:
  119.  
  120.     Edit: same as for any string gadget - cursor keys, del, backSp etc.
  121.  
  122.     operations :      +,-,*,/ divsion by zero is trapped.
  123.             ^ to the power of
  124.  
  125.     functions  :    ABS() absolute value of
  126.             SQRT() Square root of
  127.             SQR() Square of
  128.             SIN() Sine of
  129.             ASIN() ArcSine of
  130.             COS() Cosine of
  131.             ACOS() ArcCosine of
  132.             TAN() Tangent of
  133.             ATAN() Arctangent of
  134.             LN()  Natural Logarithm of
  135.             LOG() Base 10 Log of
  136.             EXP() Exponential of
  137.  
  138. Parms Menus:
  139.  
  140. File -         Quit     Quit AmigaPlot (bye)
  141.  
  142. Parameters -     Same as the Parms gadgets(just for convience)
  143.  
  144. Display -     
  145.  
  146.  Color Map - User selects color palette
  147.  ColorSpan - User selects color position/span(what heigth you want each color
  148.             to kick in.
  149.  XHatch -    Outlines complete polygon on screen
  150.  Spec.Parms -    Two gadgets:
  151.       Clip TAN - This is an adjustment for the TAN function which usually 
  152.             produces very high values(out off range). You can
  153.             adjust the tops of these spikes.
  154.     Scale/0  - This one can adjust any case of division by zero. In other
  155.             words, instead of dividing by zero(which is undefined)
  156.             you can divide by the scale value.
  157.  
  158.     
  159. ******************************************************************************
  160.  
  161.     Here are some sample functions :
  162.  
  163. 1) COS((X^2+Y^2)/10)
  164.    Object:50    Image:650      XRange:10    YRange:10    XYIncr:.5
  165.  
  166. 2) 2*SIN((X^2-Y^2)/10)
  167.    Object:50    Image:650      XRange:10    YRange:10    XYIncr:.5
  168.  
  169. 3) .005*((X/Y)^2-(Y/X)^2)
  170.    Object:50    Image:650      XRange:10    YRange:10    XYIncr:.5
  171.  
  172. 4) 3*SIN(-.05*(X^2-Y^2))-2*COS(.1*(X^2+Y^2))
  173.    Object:50    Image:650      XRange:10    YRange:10    XYIncr:.5
  174.  
  175. 5) 4*(5*EXP(-(X^2+Y^2)/60)*SIN((X^2-Y^2)/10))
  176.    Object:130    Image:750      XRange:20    YRange:20    XYIncr:.5
  177.  
  178. 6) TAN((X^2+Y^2)/50)
  179.    Object:80    Image:750      XRange:12    YRange:12    XYIncr:.5
  180.  
  181.  
  182.         **** Have Fun ****
  183.