home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 263a.lha / Mandelbrot!_v1.0 / readme < prev   
Encoding:
Text File  |  1989-07-09  |  7.8 KB  |  189 lines

  1. Mandelbrot! v1.0 by Nick Didkovsky
  2.  
  3. This program generates user-selectable regions of the Mandelbrot Set.
  4. It does so extremely quickly, due to its use of scaled integer math,
  5. 68000 assembler optimization, and a particularly unique edge detection
  6. approach.  It is coded in JForth v2.0 and runs on any Amiga with 512K
  7.  
  8. ********************* FIRST, ONCE, AND ONLY ONCE ***************************
  9.  
  10. First execute the file called execute.me.  
  11. How? Assuming that the disk which contains all these Mandelbrot! files is in 
  12. drive DF1:, and that all these files are in the root directory, open a CLI 
  13. and type:
  14.  
  15. execute execute.me
  16.  
  17. ***************************  QUICK START ********************************
  18.  
  19. FROM THE WORKBENCH:
  20.  
  21. Double click on the Mandelbrot! icon.
  22. You will soon see an image of the Mandelbrot Set.
  23. Holding the left mouse button down, drag the mouse pointer across any region
  24. you'd like to explore in greater detail.
  25.  
  26. FROM THE CLI:
  27.  
  28. CD yourself to whatever path containing both the program Mandelbrot! and the 
  29. image file Mandel.iff (probably just cd df0: or cd df1:)
  30. Then type:
  31. Mandelbrot!
  32. You will soon see an image of the Mandelbrot set.
  33. Holding the left mouse button down, drag the mouse pointer across any region
  34. you'd like to explore in greater detail.  Your CLI window will report your
  35. current activities.
  36.  
  37.  
  38. ****************** SAVING IMAGES GENERATED BY MANDELBROT! ********************
  39.  
  40.  Format a blank disk and rename it PIX
  41.  Make sure that PIX: is available before you attempt to save an image 
  42.  generated by Mandelbrot!
  43.  
  44.  Alternatively, you can use the DOS command "assign" from the CLI:
  45.  assign PIX: somedisk:somedirectory
  46.  
  47.  Caveat:  
  48.  If PIX is unavailable to Mandelbrot! at the time you
  49.  request to save IFF, AmigaDOS will bring up a requester saying:
  50.  "Insert volume PIX: into any drive"
  51.  which by itself doesn't present a problem crash anything, except
  52.  by bringing up this requester, the image under the title bar of your
  53.  beautiful picture will be corrupted, so ... keep that in mind.
  54.  Make sure PIX: is available if you want to save screens! 
  55.  
  56.  Caveat: 
  57.  All images saved during one Mandelbrot! session will be saved to PIX:
  58.  with the indexed names Mandel000.iff, Mandel001.iff, Mandel.002.iff ...
  59.  Be sure to rename any such files before your next Mandelbrot! session,
  60.  or they will be overwritten by whatever new images you save.
  61.  
  62.  *************************** PROJECT MENU ******************************
  63.  
  64.  The Project Menu makes the following choices available:
  65.  
  66.  Restart    Resets the screen to the original Mandelbrot region.
  67.             Right Amiga R is a hot key for this choice.
  68.  
  69.  Save IFF   Saves the current screen to PIX: with an indexed filename
  70.             Mandel000.iff, Mandel001.iff, Mandel.002.iff and so on.
  71.             Right Amiga S is a hot key for this choice.
  72.  
  73.  Quit       Exits Mandelbrot! and frees up whatever resources it used.
  74.             Shows nice final credits for 5 seconds.
  75.             Right Amiga Q is a hot key for this choice.
  76.  
  77.  *************************** SCREEN MENU *****************************
  78.  
  79.  The Screen Menu makes the following choices available:
  80.  
  81.  320x200       Regenerate current region in low resolution. 
  82.                Right Amiga L is a hot key for this choice.
  83.  
  84.  320x400       Regenerate current region in medium interlaced resolution.
  85.                Right Amiga M is a hot key for this choice.
  86.  
  87.  640x400       Regenerate current region in high interlaced resolution. 
  88.                Right Amiga H is a hot key for this choice.
  89.  
  90.  Title Bar?    Make title bar visible or invisible.  
  91.                Title bar is automatically hidden when a new region is selected.
  92.                Right Amiga T is a hot key for this choice.
  93.  
  94. ********************************* CYCLE MENU ******************************
  95.  
  96. The frivolous Cycle Menu makes the following choices available:
  97.  
  98. Cycle?     Turn color cycling on/off
  99.            Right Amiga C is a hot key for this choice.
  100.  
  101. Slow       Set cycle speed to slow.
  102.            There is no hot key for this.
  103.  
  104. Med        Set cycle speed to medium.
  105.            There is no hot key for this.
  106.  
  107. Fast       Set cycle speed to fast.
  108.            There is no hot key for this.
  109.  
  110. Notice that just selecting a speed will not turn cycling on. 
  111.  
  112. **************************** SESSION LOG ************************************
  113.  
  114. The text file RAM:MandelbrotSession is created every time you run Mandelbrot!
  115. It contains useful info such as what values determine the regions you've
  116. selected, how long it took to generate your various screens, and so on.
  117.  
  118. You'll see some values for variables called acorner, bcorner, xgap, and ygap.
  119. Briefly, acorner is the x value of the top left corner of the screen,
  120. and bcorner is the y value.  Xgap is the numerical distance between horizontal
  121. pixels, ygap is the numerical distance between vertical pixels.  The number
  122. 1.0 is represented by 10000, so if you see something like acorner = 2,365
  123. this means that the top left x value is 0.2365
  124.  
  125. ***************************** A FEW DETAILS **********************************
  126.  
  127.  This approach to generating the Mandelbrot Set relies on the fact that
  128.  the set is "connected". (The set itself is drawn black in the image).
  129.  The connectedness of the Mandelbrot Set guarantees that an area surrounded
  130.  by Mandelbrot pixels will be filled with Mandelbrot pixels.
  131.  This program uses EDGE DETECTION on the set whenever it is
  132.  encountered: surrounds the set, and simply marks the entire interior as though
  133.  all those pixels were already calculated!
  134.  
  135.  THE PROGRAM NEVER HAS TO CALCULATE COSTLY INTERIOR MANDELBROT PIXELS!
  136.  
  137.  The amount of time this saves is tremendous,
  138.  as it is exactly these points that would take the most computation time.
  139.  
  140.  I have never had to wait more than about 15 minutes to generate a full
  141.  640x400 screen.  Typical time to generate a 320x200 might be as low as
  142.  2 minutes.
  143.  
  144.  I would like to see a mathematical proof of the correctness of this approach,
  145.  but for now, I am content with "proof by exhaustion" that is: it works because
  146.  it intuitively makes sense, I've run the program a million times,
  147.  and it has always worked.
  148.  Period.
  149.  QED
  150.  
  151. ******************************* A FEW MORE DETAILS ****************************
  152.  
  153. At some point, after enlarging the same region more and more, you will be
  154. puzzled that the program doesn't zoom in any farther.  This is because you
  155. have reached the limits of "magnification" so to speak.  One reason Mandelbrot!
  156. is so fast is that it uses scaled integer math instead of floating point math.
  157. The floating point value 1.0 is represented by the integer 16384.
  158. That means the smallest value the program can use is (1 / 16384) = 0.000061
  159. represented by the integer "1".
  160. Ok, THAT means that the smallest possible distance between adjacent pixels 
  161. on your screen is 0.00061.  Once you've zoomed in that far, you've maxed out.  
  162. Successive region selections will just move the region left, right, up, or down;
  163. it can't get in any closer.  Floating point math would get you in closer, but
  164. the difference in speed is so dramatic that I didn't even bother making it 
  165. available in this version of Mandelbrot!. Maybe future versions will give you
  166. the choice of switching to floating point when maximum zoom is reached.  
  167. Let me know what you want!
  168.  
  169. ******************** WHY THE EXCLAMATION POINT IN MANDELBROT!? ****************
  170. McAll McMac Mcsoftware McHAS Mcto Mcbegin Mcwith Mc'Mc' Mcor Mc'Mac'.
  171. All-x synthesizers-x HAVE-x to-x have-x an-x 'X'-x in-x the-x model-x number-x.
  172. All! Amiga! software! HAS! to! have! an! exclamation! point! at! the! end!  
  173.  
  174. Nick Didkovsky
  175. 171 East 99th Street #2O
  176. NYC NY 1OO29
  177.  
  178. (212) 879-2625 bbs
  179. (212) 369-1733 voice
  180.  
  181. This program is shareware.  Do not distribute it without this readme or without
  182. the mandel.iff image file.  But please distribute it to whoever you want.
  183.  
  184. Like it? Send $1O to me at the address above.
  185.  
  186. Coming soon (or at least eventually):
  187. Didkovsky's Mandelbrot Animator
  188. Didkovsky's Mandelbrot Mural Machine
  189.