home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fujiology Archive
/
fujiology_archive_v1_0.iso
/
!MAGS
/
!BONUS
/
COVERDSK
/
STFORMAT
/
STF03.ZIP
/
STF03.MSA
/
MANDSHOW
/
README.DOC
< prev
next >
Wrap
Text File
|
1985-11-20
|
9KB
|
226 lines
MANDELSHOW Fractal Graphics Generator V1.1
==========================================
Okay, so you've seen the Mandelbrot Set being generated before... but by a
bunch of Transputers ( a dozen 20MHz T800's maybe ) in no time flat. Well
here's the same equation being chewed over by a single 8MHz MC68000.
It takes less than an hour to render a big, detailed picture - compare this
to a program written in C on an IBM XT compatible, four hours or more with
the same resolution as your ST - but in only four colours.
Fractals are infinitely detailed, wierdly beautiful and addictive. I spent
more time running this program than developing it !
The program is fairly self-explanatory and I recommend that you play with it
a bit before reading the rest of this documentation. Just one thing though,
the STARTPOS.IFF picture is not absolutely necessary but does speed things up
at the start. You can use any fractal image as the Start Position, the one on
disk is the initial picture as generated by the default settings.
Fractal pictures are saved off as IFF pictures, compatible with DEGAS ELITE,
and just about any other graphics utility, so you can use the pictures in any
way you like.
The Menus
=========
PROJECT
=======
Redraw Picture Draws the picture from scratch. You can break out to the
menus by hitting the ESC key. See View Pic.
Continue Pic Okay, you've drawn half a picture and pressed ESC. As long
as you haven't changed anything ( except colours ) this
command will recommence drawing. ESC aborts.
Load Position You can load in a previously found position and continue
exploring... Position files are very short, so you can save
off your current location with no worries.
Save Position Type in a file name and away you go ! The file created by
this option holds information about the current position
and magnification level. It is 20 bytes long.
Load Picture Loads in an IFF picture that was saved by MandelShow. It
contains position data ( as in a Position file ) so that
you can quickly carry on from where you left off. Pics
take much more room than Position files but are the only
way to export your work.
Save Picture Saves a compressed IFF picture with additional position
information ( in a FRAC chunk ).
If your picture has a different centre to your current
position then you will be warned to Redraw. Click on "Okay"
to abort or "Save it" to save the picture anyway, with the
wrong position information in it.
About The sign-on message window. Read it, press RETURN or click
on the close-box to exit, then view the menu options.
Quit The exit. It double checks;- "Yes" to quit, "No" to stay.
Your desktop colour scheme will be restored when you exit.
VIEW
====
New Centre This allows you to click on a point of interest and then
zoom in on it. You will see that the pointer changes to a
cross-hair cursor. If you decide not to change the centre
point, just press ESC to abort. If you do change the centre
then this menu item is disabled until you Redraw, because
the picture no longer agrees with the position.
Big Picture Sets the picture to its maximum size, the entire screen.
This is best when you're fairly sure that the position is
worth seeing in detail. Changing picture size temporarily
disables New Centre until you Redraw and have a valid pic.
Small Picture Sets the picture to its minimum size, one ninth of the
screen. This is great for having a quick look at new
positions, nine times faster than the Big Picture view.
Detailed Pic This is the slow, deep setting that brings out lots of
minor detail. You will probably want to use this mode with
the Big Picture view only for screens to save onto disk.
Use with Small Picture view to see extra detail.
Fast Picture This produces a fast, approximate Mandelbrot picture that
is great for exploring with. It works best at low levels
of magnification.
View Picture Select this to view a full screen in its correct palette -
click the left button or press ESC to exit. Note that the
palette is modified during menu operations so that the
text is always visible.
Reset Params Brings you back to minimum magnification, the standard
initial values for position and the standard palette.
MAGNIFY
=======
By 2 \
By 4 >- Zooms you in - starts redrawing immediately.
By 8 /
By 1/2 \
By 1/4 >- Zooms you back out and starts redrawing immediately.
By 1/8 /
Maximum Zooms in as far as possible ... note that the mathematics
starts to lose accuracy at the highest levels of
magnification, so funny effects can arise - be warned !
Minimum Zooms all the way out. Not terribly useful unless you are
completely lost.
COLOURS There are six palettes to choose from, each giving a
======= different "feel" to a picture. You can change the colours
of any IFF picture files that you save off using your
favourite art package, but you won't be able to load them
back in.
Notes
=====
I use HiSoft's DEVPAC ( GenST, MonST ) on an old 1040 ST for text work and
a newer 520 ST for testing my code. The MandelShow program was originally
written an an Amiga A1000 ( sorry! ) with HiSoft's GenAm and MonAm.
This may be one of the few bits of software ever ported from the Amiga
across to the ST ... It always seems to be the other way.
Note that this version of the software runs over 15% faster than on the
Amiga - this due to the ST's processor being faster and the operating system
not getting in the way, like it does on the A500 / A1000.
The code is 100% assembly, no compilers ( yuk ) or other stuff. It's fast,
mean and lean but may have bugs. If you find any, DON'T TELL ME.
The program looks for the initialisation picture/position under the names:-
<current drive>:\STARTPOS.IFF
<current drive>:\MANDSHOW\STARTPOS.IFF
<current-directory>\STARTPOS.IFF
<current-directory>\MANDSHOW\STARTPOS.IFF
By default it's likely to be in one of these, so should cause no problems.
If you change the contents of the file, i.e. save off a different picture,
then that new position will become the default starting place on the Mandel-
brot picture. Very handy for deep delvers.
The total available space for exploration is over a million screens full,
which should keep you occupied for a while.
I use a modified version of this algorithm to calculate the colour value for
each pixel :-
for y=0 to screenheight-1
q:=y_start+y*stepsize ;stepsize depends on magnification level
for x=0 to screenwidth-1
counter=0
xvar:=0
yvar:=0
p:=x_start+x*stepsize ;x_start & y_start depend on centre point
loop: ;just a label
xtemp:=(xvar^2)-(yvar^2)+p
yvar:=2*xvar*yvar+q
xvar:=xtemp
counter:=counter+1 ;(ie counter++)
if (xvar^2)+(yvar^2) < trigger ;exits if we're sure it's interesting
then
if counter < maximum_iterations ;exits if it's getting boring
then
loop ;this is a GOTO ( !!!! )
else
setcolour(count&15) ;don't have to use this colouring rule
writepixel(x,y) ;hit the screen
next x,y
end
DISCLAIMER
==========
PROGRAM DISCLAIMER: The program is provided "AS IS" without warranty of any
kind, either expressed or implied, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose. The
entire risk as to the results and performance of the program is assumed by
the user.
Or, in English, if Atari change the rules or this little gem of a proglet
gets stroppy with your 8-inch floppy, hard luck.
I have tested this program as well as I am able and believe it to be stable,
but somewhere, someone will crash it. C'est la vie.
CONDITIONS
==========
Feel free to distribute this code on a non-profit basis; the graphics that
you create with it are yours to do with as you will, and none of my business.
It is important that you should spread this DOC file with the object code,
but the pictures & positions are less important.
Nic/89
> Gaudete! <