home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
093.lha
/
MandelZoom
/
MZ.ReadMe
< prev
next >
Wrap
Text File
|
1986-11-20
|
6KB
|
142 lines
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.