home *** CD-ROM | disk | FTP | other *** search
-
-
-
- MandelZoom v 1.0 :
- Nat Hilterbrand
- CSERVE 71350,646.
-
- The object/load form of this program is released to the public domain.
- It may be freely distributed and used by anyone, as long as they do
- not directly profit from it's use, and if this documentation is
- distributed crediting me as author (for reasons of vanity). Although I
- have tested the modules, (except the 68881 code) I do not warrant them
- in any way, and will not be responsible for any damages resulting from
- the use of them.
-
- Now, that we have that out of the way, on to the "documentation". This
- program is my implementation of the MandelZoom program discussed by
- A. K. Dewdney in his Computer Recreations article in the November 1987
- issue of Scientific American magazine (volume 257 number 5). The basic
- purpose of the program is to allow the interested individuals to display
- upon the monitors of the Amiga, the Mandelbrot set. The user may display
- the entire set (the default action), or may "zoom" in on any portion
- that he or she wishes. The article mentions that the user should be able
- to enter a starting real and imaginary point and a display width, and
- view the result. I give that capability, plus several more.
-
- The best way to gain familiarity with this program and it's abilities
- is to "play with it". So, without any further verbage, here are the
- instructions.
-
- 1) Before "playing", you must select which version of the program you
- wish to use. I have included 4 versions, all of which were generated
- from the same source code. The difference is in how they handle
- floating point arithmetic. The version are:
-
- mz.m uses Amiga FFP library in "ROM"
- mz.ma uses Amiga MathIEEEDoubBas library
- mz.mx uses Manx IEEE math
- mz.m8 uses 68881 if you have one. THIS IS UNTESTED!!!
-
- The FFP will run faster, but will be less accurate. The IEEE
- versions are slower, but more accurate. Which you use will depend
- upon your needs. I no nothing of the 68881 version, but if some
- benevolent soul out there who has the coprocessor would let me
- know how this works, I would appreciate it.
-
- 2) To invoke the program, enter the name of the chosen module on the
- CLI command line, followed by arguments in C language format.
- Arguments used by the program are:
-
- r= specifies the Real value in the upper left hand corner
- of the screen. Default is -2.25.
-
- i= specifies the Imaginary value in the upper left hand
- corner of the screen. Default is -1.25.
-
- w= specifies the Width (on the real axis) of the picture.
- This value does NOT control the number of pixels used
- to implement the picture: the program always uses the
- full screen.
-
- m= specifies the Magnitude (distance from 0+0i) that a
- point must reach to be considered "out of bounds".
- Default is 2.00.
-
- n= specifies the Number of tries the program will make
- for a specified point to try to push the value 'out
- of bounds'. Default is 63. This value will always be
- rounded up to the nearest multiple of the number of
- colors used, minus 1.
-
- s= specifies the type of Screen that the program opens to
- draw in. Three values are allowed:
-
- s=l LowRes, 320x200, 32 colors
- s=h HiRes, 640x200, 16 colors
- s=i HiRes, 640x400, 16 colors, interlaced
-
- Default is s=l.
-
- c= specifies the Colors to use. Several values are valid.
-
- c=<d> Uses the default colors I used during
- testing.
-
- c=<r> Will generate a psuedo-random color scher
- will be repeated.
-
- c=filename Will read colors from the file specified.
- The file should have one line per color,
- for as many colors used (16 or 32). Each
- line should have a Red, a Green, and a
- Blue value seperated by spaces. Each value
- should be an integer from 0 to 15. For
- a medium Gray, for example, use
- 8 8 8
- and for white use
- 15 15 15
- and for purple use
- 15 0 15
-
- The program will always print a list of the colors
- it is using to STDOUT. This list may be redirected to
- a file, and then re-read by the program, so if you
- capture the colors, and some random set of colors
- "tickles your fancy" as we say in Tennessee, you
- can reuse it over and over.
-
- 3) Once the program has begun to execute, you may control its
- operation in several ways. You will notice that the screen fills
- top to bottom, left to right. If you press any key on the keyboard,
- the program will stop the next time it reaches the bottom of the
- screen. The mouse is also used. You may define, with the mouse,
- an area to zoom. Just find an area you would like to see in more
- detail, press AND HOLD the left mousey button in one corner of the
- area, drag the pointer to the diagonally opposite corner, and
- release. As soon as the program reaches the bottom of the screen
- next, the screen will clear, and the program will begin to display
- your smaller area in more detail, just as if you had entered the
- points at start time with the r and i variables. The program will
- also write the new r, i, and w values it is using to STDOUT, so you
- may later invoke the program starting with this display. You may
- continue to "zoom" in for more detail as long as the accuracy of the
- floating point numbers holds up. You may also abort the drawing at
- anytime and redraw the previous picture by depressing the right
- (Menu) mousey button.
-
-
- This is not the best offering, I realize. I will continue to work on it,
- make it run in background, add menu support, Julia set generation, etc.
- Have fun, and EMAIL me if you have in questions/comments/etc.
-
- If you are not a Compuserve user, you may contact me via U.S. Snail
- at:
-
- P.O. Box 1601
- Smyrna TN 37167-1601
-
- By the way, another credit. This program was developed using the Manx
- Aztec C68 v3.4 on an Amiga 1000, 512k, two 3.5 inch floppies, AmigaDOS
- 1.2.
-