home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
263b.lha
/
MandelVroom.doc
< prev
next >
Wrap
Text File
|
1989-06-29
|
78KB
|
1,538 lines
MandelVroom User's Guide
Program and Pictures by Kevin Clague
Documentation updated by Serenella Ciongoli
INTRODUCTION
Reference material:
H.O. Peitgen - P.H. Richter The beauty of fractals - Springer-Verlag 1986
H.O. Peitgen - P.H. Richter The Science of Fractal Images -
Springer-Verlag 1988
B.B. Maldelbrot - The fractal geometry of nature -
W.H. Freeman and Company
Scientific American - August 1985 - Exploring the Mandelbrot Set
Micro Cornucopia - Jan/Feb 1988 - 'Drawing The Mandelbrot and Julia Sets'
by Larry Fogg.
What is a Mandelbrot set
The Mandelbrot set is the set of all the complex numbers for which the
value of a complex function (usually Z*Z +/- C) is finite even after an
indefinitely large number of iterations.
MandelVroom determines the part of the complex plane comprising the
Mandelbrot set, according to the following procedure:
Consider the algebraic expression Z*Z + C, where Z is a complex variable,
and C is a complex constant. For a range of values of C, we:
1. set the initial value of Z equal to the complex number 0
2. calculate the expression Z*Z + C = Z'
3. substitute Z' in the expression and calculate again, repeating the
process until we reach infinity (or a preset maximum iteration count).
4. Repeat the steps 1 thru 3 for a new value of C.
We map the Mandelbrot set calculated in the above process in a three
dimensional coordinate system, where the X and Y coordinates represent the
real and imaginary values of C, and the Z axis represents the iteration
count we obtained in step 3.
Quoted from the article in Scientific American:
The Mandelbrot set broods in silent complexity at the center of a vast
two-dimensional sheet of numbers called the complex plane. When a certain
operation is applied repeatedly to the numbers, the ones inside remain to
drift or dance about. Close to the boundary, minutely choreographed
wanderings mark the onset of instability. Here is an infinite regress of
details that astonishes us with its variety, its complexity and its
strange beauty.
What is a Julia curve
To calculate a Julia curve, we use a process similar to the one we used to
create the Mandelbrot set. The difference consists in the fact that the
user will choose a C complex constant (MandelVroom will ask you to set a
Julia seed), then we will apply steps 1 thru 4 for different values of Z.
What is MandelVroom
MandelVroom is a Mandelbrot picture generator that allows you to explore
the Mandelbrot set. It provides you with tools to zoom in and out, and to
move around it. You can also create Julia curves whose pattern is based
on a location in the Mandelbrot set or in a previously generated Julia
curve.
In this document, moving around in the Mandelbrot or Julia set is referred
to as navigation. The section titled "Mandelbrot Navigation" outlines how
to use MandelVroom to get around the Mandelbrot set. The section titled
"Julia Navigation" contains a similar discussion about Julia curves. For
the most part, MandelVroom treats Mandelbrot and Julia pictures
identically, so, for the rest of this introduction, we will use the term
Mandelbrot to mean Mandelbrot and Julia.
Each pixel in a Mandlebrot picture represents a location in the complex
plane. The color of each pixel is determined by the number of times an
equation can be iterated at that pixel's location in the complex plane.
When you calculate a Mandelbrot picture, the result is a two dimensional
array of iteration counts (one element per pixel). One dimension of the
array represents the width, the other dimension is the height of the
picture in your picture window.
MandelVroom uses this two dimensional array of heights as the basis to
create a three dimensional object. If you imagine that a Mandlebrot
picture on your Amiga screen is flat on the ground, then the iteration
counts of the Mandelbrot equation can be thought of as altitude.
All Mandelbrot programs convert this iteration count (from now on referred
to as altitude) into color. Most of them use the altitude modulo the
number of colors to determine the color to assign to any given pixel.
MandelVroom uses contour map making techniques to map range of altitude to
color, and to give you direct control over picture coloration.
MandelVroom lets you color your Mandelbrot pictures via a user modifiable
contour map key with 256 entries. Each contour entry (referred to as
contour in the rest of this document) represents a range of altitudes and
associated colors.
You use the Contour Palette (the modifiable contour map key), to choose
which pen should be associated with a given range of altitudes. There is
also a Color Palette, thru which you can choose the color you want
associated with a contour entry. You can set a contour pen by clicking a
command gadget and then touching the Color Palette. You can set the lower
bound of a contour height range by pressing a command gadget, and then
clicking someplace in the Mandelbrot picture you are trying to color.
This coloring scheme is powerful and flexible, and gives you direct
control over the coloration of your Mandelbrot pictures. The Color and
Contour Palettes are discussed in more detail in the section titled
"Coloration".
As your Mandelbrot picture is calculating, MandelVroom remembers each
pixel's altitude, so you can later recolor the picture without having to
recalculate it. This is a real time saver, since Mandelbrot programs are
notorious for using huge amounts of CPU time (hours, possibly even days),
especially if you use floating point math and do not have floating point
hardware support.
MandelVroom creates a separate task to generate each of your Mandelbrot
pictures, so you can recolor your picture while it is generating. At
last, you can do SOMETHING ELSE with your machine (and MandelVroom
itself), besides watching a Mandelbrot program veeeery sloooowly
generating a picture. This makes MandelVroom uniquely Amiga.
MandelVroom has a number of other significant features including:
- Graphics oriented "point-and-click" user interface using Intuition
menus and gadgets
- Support for 320x200, 320x400, 640x200 and 640x400 screens
- Support for EXTRA_HALFBRITE
- Capability to change graphics screen modes while projects are
generating
- Support for PAL (European) Amigas
- 68020/68881 math support. If you have a 68020 based Amiga,
MandelVroom will be able to utilize the 68020 and its 68881 (if one
is available).
- Picture generator support for five math modes:
- two 32 bit math modes (one for 68000, the other for 68020)
- Amiga Fast Floating Point
- IEEE floating point using Amiga math libraries
- IEEE floating point using 68881 in assembly
- Capability of stopping then resuming picture generation.
- Project oriented. Each picture is a separate project.
- Loading and saving of projects to disk.
- Multiple projects open and generate simultaneously.
- Navigation is allowed across projects
- A magnifying lens to aid in navigation
- On-Line help for all the gadgets and menu Items.
More on each of these features later.
START UP REQUIREMENTS
MandelVroom can be executed on Amigas with 512K of RAM, but it really runs
much better if you have more. MandelVroom requires the following
libraries to be available in your LIBS: directory:
mathtrans.library
mathieeedoubbas.library
icon.library (only if started from the WorkBench)
Installing MandelVroom on a hard disk
First you should create a directory on your hard disk. From your CLI you
could type:
makedir dh0:Mandel
then you should copy all the MandelVroom drawers and files to it:
copy Mandelbrot:#? to dh0:Mandel all
If you expect to run MandelVroom from the Workbench, then you need also to
create a drawer icon for its directory:
copy Mandelbrot:projects.info to dh0:mandel.info
Before running MandelVroom from the hard disk, if you want the help
function available, you should:
assign Mandelbrot: dh0:mandel
Starting from the WorkBench
If you are using a floppy drive, place your MandleVroom disk in any drive.
Double click the icon for the MandelVroom disk.
If you are using a hard disk, double click its icon, then select the
Mandel drawer icon you created during the installation.
After you display the MandelVroom icon, double clicking it will start the
program and the automatic generation of the default project, a small
picture of the Mandelbrot set.
You can also open the Projects drawer and double click one or more of the
projects previously generated. At startup, MandelVroom will display all
the selected projects.
Starting from the CLI
MandelVroom can also be started from the CLI. It requires a minimum of
30000 bytes of stack space. MandelVroom's command syntax is as follows:
MandelVroom <project_name> <project_name> ... <project_name>
If you supply one or more project names (names of previously saved
pictures), MandelVroom will open up and display each of the projects you
indicated. If you don't provide any project name, MandelVroom will start
up generating the default project, a small picture of the Mandelbrot set.
HELP
MandelVroom has an on line help facility. If you pull down the Help Item
in the Project menu, then select the menu Item you want help with,
MandelVroom will open a new window and display help information for it.
You can also do the same for any gadget that is available for your use.
THE PICTURE WINDOW
MandelVroom displays projects in windows called picture windows. Each
picture has the standard system gadgets: a close gadget, front and back
gadgets, a drag bar, and a resize gadget. In the right hand margin of a
picture window, there are four or five gadgets that are used to control
MandelVroom. The use of each of these keys will be described in more
detail later, but here is an outline of what the gadgets are for:
C - Current. Makes this project the current project.
G (or S) - This gadget toggles between Generate and Stop.
This is the start/stop button for the picture generator used by
this project.
I - Zoom In. Allows you to navigate into some region of a previously
generated picture.
O - Zoom Out. Allows you to navigate out from your current location
in the Mandelbrot or Julia picture.
J - Set Julia Seed. This gadget is present only in Julia type
windows. It allows you to set the seed for a Julia project from a
previously generated picture.
The importance of the Current gadget will become apparent when you have
more than one project open at the same time. Like Amiga windows, you can
have many projects open at one time, but only one can be "active" for
input. MandelVroom allows you to have many projects open, but the menu
and control panels only apply to the current one. You can quickly identify
the current project by the asterisk in the Title Bar of its picture
window.
The G (or S) button serves two purposes: indicates the state of the
project (generating or stopped), and modifies the state of the project.
When you press this button, it changes to an "S" for stop. If, for some
reason, you don't want to generate the entire picture, press the "S"
(stop) button, and picture generation will stop. Once the picture has
stopped generating, either because you pressed the stop button, or the
picture completes generating, the "S" gadget will become a "G" gadget
again. This tells you that, if you press it, it will generate again.
The function provided by the G (or S) button are also available thru the
Calculate Generate menu. This menu also provides a third function, called
the Resume Item: it allows you to continue generating a project after you
have stopped its generation. You can stop a project's generation, save
the project to disk, and quit MandelVroom. Later, you can reload the
project, and resume its generation using the Calculate Generate Resume
menu Item.
The Zoom In, Zoom Out and Set Julia Seed gadgets are used for navigation.
They are discussed in detail in the sections titled "Mandelbrot
Navigation" and "Julia Navigation".
MandelVroom also offers you the option of having no borders around your
picture. this options very convenient if you want to save an image in ILBM
format, or use any of the programs that write an image of the screen to
disk. Please refer to the section Borderless later on in this document.
All the functions provided by the gadgets are also available thru the
MandelVroom's pull down menu system.
THE MENUS
MandelVroom is a graphics oriented point-and-click program that is
controlled using menus and gadgets. There are four menus associated with
MandelVroom:
Project - Items that are of global interest: Load, Save and New
Project, request Help, Quit.
Display - Items to control MandelVroom's screen and picture windows
characteristics.
Calculate - MandelVroom specific commands and control settings.
Special - Preset pictures and Orbit definitions
As an alternative to mouse selection of a menu Item, the most frequently
used commands also have keyboard shortcuts. The keyboard sequence to be
used, when available, is indicated on the right of each menu Item.
The Items in the Project, Display, Calculate and Special menus will each
be explained later in this document. Next we are going to discuss the
Presets Item in the Special Menu.
PRESETS
Unless you are familiar with Mandelbrot programs, it may take you a while
to find your way in the Mandelbrot set. So this package contains a set of
predefined Mandelbrot and Julia pictures as starting point for your
explorations. Later, the "Mandelbrot Navigation" and "Julia Navigation"
sections will teach you how to create new projects from these presets.
To open a preset project, press the right mouse button to pull down the
Special Menu, Preset Item. Each preset has a name that is also its menu
Item name. The names were chosen on a whim by Kevin, so don't try to read
any cosmic significance in them. Select a preset by releasing the right
mouse button over the one you want.
MandelVroom should open a new project window for you and start to
calculate the preset Mandelbrot or Julia picture into it. If you decide
you don't want this project anymore, you can close it by pressing the
project's window close gadget. If you want to make a larger version of
the same project, you can resize the window and press the Generate gadget
in the right margin of the project's window. If you try this while the
project is generating, remember that you will have to press the G/S button
twice: once to stop the project from being generated, and again to start
it generating. You can also use the Pan Item in the Calculate menu to
reposition the picture in the enlarged window.
The next sections will describe how to change the colors and contours
associated with the preset projects. First let us learn about coloration.
COLORATION
As already mentioned, coloration is the same for Mandelbrot plots and
Julia curves. So, in this section, the term Mandelbrot refers to both
Mandelbrot and Julia pictures.
As already explained in the Introduction (What is MandelVroom), how a
Mandelbrot picture looks depends on two things: the colors you choose for
your color palette, and what contour setting you use to map altitude into
color. So, let us explore the use of the Color Palette.
Color Palette
The Color Palette allows you to modify the color values in the hardware
color registers (also referred to as pens). You can open the Color
Palette by selecting the Display menu Colors Item.
You will notice that the Color Palette has three distinct areas. On the
left, there is a box filled with all the pens available to you. The
center region of the color palette contains three potentiometer gadgets,
one for each of the three color components of a pen: red, green and blue
(RGB). The region on the right contains 3 gadgets that allow you a
large degree of control in defining the colors associated with the pens.
The potentiomenter gadgets can only apply to one pen at a time. This
pen is referred to as the current pen, and is identified by a border
around it. This border makes the current pen larger than the rest. You
can make any pen the current pen by clicking it with the left mouse
button.
Once you have made current the pen you want, you can observe its color
component's values by looking at the characters under each of the
potentiometer gadgets. These characters are the hexadecimal (base
16) values determining each of the color components. You can change a
pen color by sliding any one of the potentiometer gadgets up or down, or
by clicking with the left mouse in the container area (above the
potentiometer to increase its value, below it to decrease).
You can copy one pen RGB values into another pen using the Copy gadget
in the Color Palette. To properly use the Copy gadget, you must perform
the following steps:
1. Make sure the pen whose color you want to copy is the current one.
Click on it, if necessary.
2. Click the Color Palette Copy gadget. The mouse cursor should
change to indicate "TO".
3. Click the Color Palette pen you would like to change. The color of
the pen you chose in step one should now be copied into the new pen
you picked. The new pen also becomes the current pen.
The rest of this documentation will use a shorthand notation for a
sequence for these kinds of command sequences. The shorthand notation
for the copy command is:
[ColorPen] COPY ColorPen
The words in square brackets are optional. Words in all upper case are
commands and words in lower case are parameters. The "ColorPen"
parameter is a notation for a Color Palette pen. Later you will see
"ContourPen" used as a notation for Contour Palette pens.
You can exhange two pen's colors by using the Exchg gadget. The syntax
for the Exchg command is as follows:
[ColorPen] EXCHG ColorPen
You can mix two pen's colors together by using the Spread command
gadget. When you spread between two gadgets, the pens in between the
two pens specified in the command sequence are blended to give you a
smooth change in color. The format for the Spread command is:
[ColorPen] SPREAD ColorPen
If the above syntax definition is confusing, remember that the color
palette operates much like the color palette in Deluxe Paint (tm of
Electronic Arts).
Now that you have all the skills necessary to run the Color Palette, we
are ready to use it in conjunction with the Contour Palette.
CONTOURS
In the Introduction, we mentioned that MandelVroom treats Mandelbrot plots
and Julia curves as three dimensional objects. You can think of them as
sticking straight out of the screen toward you. It takes a while to get
the feel for the three dimensional aspects of the picture. MandelVroom
has a simple query tool that prints the height of a given pixel in the
screen's title bar.
Query Height and Location
If you have no commands outstanding, you can query the height of any
pixel by placing the cursor over it and pressing the left mouse button.
If you slide the mouse around, while holding down the left mouse button,
the screen Title bar will change as the altitude under the cursor
changes. Slide it around, until you understand what is taller than what
in the picture. A good understanding of the tall parts and short parts
of a picture is imperative for a good use of the Contour Palette. In
addition to displaying the height of the pixel under the cursor, the
Title bar also displays its location in the complex plane. The location
is shown as the values of the r(eal) and i(maginary) coordinates.
Definition of Contour
As already mentioned in the introduction, a contour associates a pen
number (color) to a range of altitudes. To clarify this, let us start by
taking a look at a geographic map.
A contour map of the United States might use white to represent the tops
of the Rockies, grey to represent the mountains down to the foothills,
green to represent the land down to the prairies, and golden-brown to
represent the low level plaines. The key to this contour map has four
entries (one per color). Each entry has a range of altitudes that might
look like this:
white - 13,000 feet to 6000 feet
grey - 5,999 feet to 3000 feet
green - 2,999 feet to 1000 feet
brown - 999 feet to 0 feet
In this simple example of a contour map key, the color grey altitude
range can really be expressed as everything at, or above 3000 feet and
below 6000 feet.
Note that, in this map, the colors are only used once, so there is
little ambiguity about what the color grey means. Also, there are no
altitudes that are not accounted for (except those taller than the
mountains, and below sea-level).
If you assume that all altitudes from 13000 feet down to zero are
represented by some color, then the map key contains redundant
information. In MandelVroom, each contour only has one height: the
lower bound of the associated range of heights. The high bound of the
height range associated with this contour, is given by the previous
contour's lower bound minus one. In other words, it takes 2 contours to
represent a range of heights. So the above example would look like this:
white - infinity down to 6000 feet (contour 0)
grey - down to 3000 feet (contour 1)
green - down to 1000 feet (contour 2)
brown - down to 0 feet (contour 3)
A result of this is that contour zero (the leftmost contour in the
Contour Palette) represents the tallest contour, and that all other
contours to the right of it should be lower in altitude (for the range
to make sense). All contours that do not follow this rule are
considered invalid and are ignored by MandelVroom. The potentiometer
gadget knobs for valid contours are brightly colored, while the ones for
invalid contours are dimly colored.
MandelVroom associates a pen number to each contour (the lower bound of
a range of heights). A consequence of contours decreasing in height is
that, when you color pictures using MandelVroom, you generally color
them from the top down. The best way is to start by modifying the
leftmost contours (the tallest) and work your way to the lowlands (the
rightmost contours). The section titled "Coloring Pictures" discusses
this in detail. Now, we are ready to learn how to use the Contour
Palette.
Opening the Contour Palette
You can open the Contour Palette by selecting the Display Contours menu
Item. You should see a big window open across the bottom of the screen.
The Contour Palette has four major areas:
- The title bar, which also gives info on the current contour.
- The command gadgets for editing the contours. This is the row of
buttons below the title bar.
- The Color Bar, that displays the pens for all 256 contours.
It is directly below the command gadgets.
-The Contour Editing section that is below the Color Bar and on the
left side of the window.
The command gadgets are used to manipulate the contour heights and pen
numbers. They allow you to affect contour heights and pens both
individually and in groups of consecutive contours.
The Color Bar and the Contour Editing section are interrelated. The
Color Bar shows you all 256 pens associated with the contours, while the
Contour Editing section gives you a detailed look at 32 of the 256
contours. It is analogous to an editor window that gives you a small
section of a big file. Inside the Color Bar, there is a box around 32
consective colors. This box indicates which 32 of the 256 contours are
being displayed in the Contour Editing section. You can slide the box
around by depressing and holding the left mouse button down inside the
it, then moving the mouse left and right. For now, you should leave the
slider at the left edge of the Color Bar. This leaves the Contour
Editing section displaying the first 32 contours.
The Contour Title Bar
The title bar keeps you informed about the contours you are working on.
As you select a contour entry, it will display information about the
C(ontour) number you are changing, the P(en) associated with that
contour number, and its H(eight) or altitude range.
Here is an example title bar:
C: 1 P: 4 H: 1022-137
In this case, the current contour is contour one. The pen for contour
one is pen four, and contour one range of heights is 1022 down to 137.
Remember that this means contour zero low bound height is 1023.
Contour Editing
The Contour Editing section is used to modify a contour height or pen.
You can change individual contours using the Contour Palette Set command
gadget. You can change a range of contour heights using the Smooth
gadget. You can change a range of contour pens using the Cut, Copy, and
Paste command gadgets.
Contour Editing gadgets
Each of the contours in the Contour Editing section is represented by
one column which contains a pen gadget (on top) and a potentiometer
gadget. The pen gadget is used to select a contour as the current
contour, so you can edit it. When you touch a contour pen gadget,
MandelVroom draws a box around it to indicate that it is current.
A contour potentiometer gadget serves two purposes. The first is to be
a rough indicator of the height of a given contour (the Contour Palette
Title Bar contains the accurate value of the current contour's height).
A contour potentiometer gadget also gives you a crude way of setting the
height of a contour. As you will soon see, the Set command gadget is a
much better way to set it.
Changing Contour Heights
As we mentioned earlier, you can change a contour height by sliding its
potentiometer gadget up and down, or by clicking with the left mouse in
the container area (above the potentiometer to increase its value, below
it to decrease). You can also use the Set command gadget to set the
current contour height to the height associated with a given pixel in
your Mandelbrot (or Julia) picture. The syntax of the Set command
gadget (for changing height) is:
[ContourPen] SET "pixel-pick"
In English, this means: click on a contour pen gadget (if necessary) to
set the current pen. Click the Set command gadget. Click on a pixel in
the picture you are coloring. MandelVroom will determine the height
associated with the pixel you clicked, and use that as the current
contour height. This is very useful, and gives you direct control over
contour heights.
Before we go on, please take note of the syntax. In the Color Palette
section, we used "ColorPen" to represent the action of clicking a Color
Palette pen. In this section we have introduced Contour Palette pens.
We use "ContourPen" to represent the action of clicking a Contour
Palette pen.
The contour pens serve two purposes. The first is an indication of the
color of given contour. The second is to select contour(s) as
parameters for commands. At times, you select a contour to change its
color. Other times you select a contour to change its height. In either
case, you press a contour pen to make a contour selection.
Changing a Range of Heights
The Set command gadget is usefull, but tedious if you want to use it to
set each of the 256 contour heights. You can change a range of contour
heights by using the Set command in conjunction with the Smooth command.
Suppose you used the Set command to set contour one's height to 256 and
contour twenty's height to 56. If you smooth the heights between contour
one and twenty, the contours in between will have the following heights:
Contour Height
2 246
3 236
4 226
: :
: :
18 76
19 66
The smoothed contours have been evenly spaced (in terms of height).
This is a very handy tool. The syntax of the Smooth command is:
[ContourPen] SMOOTH ContourPen
There are two special cases of the Smooth command. The first has to do
with illegal contour height situations. If contour two has a height that
is LOWER than contour twenty (an illegal contour situation), the heights
are decreased by one. This can be handy if you want a range of contours
to decrease by one. It can be confusing if you don't know what you are
doing.
The second special case has to do with the gadget labeled Last. Pressing
this gadget is equivalent to pressing contour 255's contour pen gadget.
This saves you the effort of sliding the Color Bar Box to the right and
pressing the rightmost contour (and probably sliding the Color Bar Box
back to where you were).
When you Smooth to Last, the contour heights are decreased by one, no
matter what the height of the last contour. So the syntax for the
Smooth command really is:
[ContourPen] SMOOTH ContourPen | LAST
In human terms, this means: once you have pressed the Smooth gadget, you
can press a contour pen gadget, or the Last gadget.
The Ceiling gadget
The Ceiling gadget is the single potentiometer gadget to the right of
the Contour Editing section. This gadget does not affect your picture.
It only affects the way contour heights are displayed in the contour
potentiometer gadgets. It is most usefull for viewing those contours
whose heights are relatively low.
If you pull the Ceiling gadget down to a height of fifty, then you get a
good view of those contour heights that are fifty or lower. If this
confuses you, slide the Ceiling around a few times and look at how the
contour potentiometers change. Play with it enough to convince yourself
that it does not affect the contour heights. If you cannot figure it
out, just pull it up to the top and ignore it.
If you pull down the Ceiling gadget, and some contour heights are taller
than the Ceiling, these contour potentiometer gadgets will be glued to
the top of the potentiometer container. If you are trying to move a
contour potentiometer, and, when you release it, it snaps back to the
top of the container, then it is taller than the Ceiling. You must pull
the Ceiling to the top of its container to alleviate this problem.
The Paint gadget
After you have changed the contours, you will want to see what effect it
has on your picture. To do this, press the Paint gadget. MandelVroom
will then redraw your picture using the new contour settings. Any time
you change any contours (heights or pens), you need to press the Paint
command gadget to see its effect on your picture.
Changing Contour Pen colors
The simplest way of changing the color of a contour pen is by using the
Set command gadget. Before trying to use the Set command to do this,
you must have the Color Palette open. To do this, pull down the Edit
Colors menu Item.
The syntax of the Set command is as follows:
[ContourPen] SET ColorPen
This means: click a Contour Palette pen to make it current if need be.
Click the Set command gadget, then click the Color Palette pen that you
want used as the contour pen.
After you complete the command sequence, you should see that the contour
pen color has changed to match the pen you chose from the Color Palette.
You should also see that the Color Bar has changed to match the new pen.
It would be quite tedious to set each individual contour pen using the
Set command gadget, so MandelVroom provides you with a set of tools that
allow you to work with a list of pens called pen patterns.
Contour Pen Patterns
The pattern tools (Cut, Copy and Paste) allow you to manipulate a range
of pens within the Contour Palette. These commands allow you to copy
the pens from a range of contours into a holding register, and then copy
them from the holding register into another range of contour pens.
Copying Pen Patterns
The Copy command allows you to copy a list of pen numbers from one of
two places into the holding register. You can copy a range of
consecutive pen numbers from the Color Palette into the holding
register. You can also copy a list of pen numbers from the Contour
Palette into the holding register. Once in the holding register, you
can paste it into a set of contour pens using the Paste command gadget.
The Copy command has two syntax formats. The first is for copying pens
from the Color Palette, the other for the Contour Palette.
[ColorPen] COPY ColorPen
[ContourPen] COPY ContourPen
Please keep in mind that there is a difference between the Color Palette
Copy command, and the Contour Palette Copy command. It is unfortunate
that both command gadgets have the same name. They have very different
meanings.
Cutting Pen Patterns
The Cut command copies a range of contour pens into the holding
register, and then removes the range of pens from the contour list. The
pens to the right of the cut section are shifted to the left to cover
the removed pens. The syntax for the Cut command is:
[ContourPen] CUT ContourPen
Pattern Direction Sensitivity
The Contour Palette Copy, Cut and Paste commands are direction
sensitive. If, for example, you perform the following mouse actions:
1. Click contour 3's pen
2. Click the contour Copy command
3. Click contour 18's pen
then, contour three's pen is the first to go into the holding register,
followed by contour four through contour eighteen's pen. If we swapped
steps one and three, then contour eighteen's pen would be the first pen
in the holding register. This is very handy. It is quite useful for
reversing, or making mirror images of, pen patterns. More on this after
we have learned to paste pen patterns.
Pasting Pen Patterns
Once you have a pattern in the holding register, you can overlay a range
of contour pens with it. The syntax for the Paste command is as follows:
[ContourPen] PASTE ContourPen
Pattern Direction Sensitivity Tricks
Keep in mind that the Paste command overlays (does not insert) pens into
the contour pen list. By taking advantage of pattern direction
sensitivity when copying and pasting, it is easy to reverse a range of
contour pens. Example:
1. Click contour 0's pen
2. Click the Copy command
3. Click contour 31's pen
4. Click the Paste command
5. Click contour 0's pen
This should reverse the pattern of pens in contours zero through contour
thirty-one.
You can also easily make a pattern that is symmetric around a given pen.
Try this one:
1. Click contour 15's pen
2. Click the Copy command
3. Click contour 0's pen
4. Click contour 15's pen
5. Click the Paste command
6. Click contour 30's pen
Insightful use of pattern direction sensitivity can be very helpful in
creating extremely complex patterns with very few mouse actions.
Pattern Repetition
When you Cut or Copy a pattern and put it into the holding register, the
pattern has a length. When you paste this pattern, the number of
contours to be pasted to may be bigger or smaller than the length of the
pattern in the holding register.
If the pattern in the holding register is longer than needed for the
Paste command, then MandelVroom only pastes as much as indicated by the
Paste command. If the pattern in the holding register is shorter, then
the pattern is repeated until the length indicated by the Paste command
is achieved. This can be very handy, especially for repeating symmetric
patterns like the one we created earlier.
Cut, Copy and Paste to Last
Remember that the gadget named Last is a short hand for pressing contour
255's pen gadget. You can use the Last gadget in conjunction with the
pattern commands. A more accurate definition of the pattern command
syntax is:
[ContourPen] COPY ContourPen | LAST
[ContourPen] CUT ContourPen | LAST
[ContourPen] PASTE ContourPen | LAST
Using the Last gadget in conjunction with the Paste gadget is a great
way of repeating a pattern for the rest of the contour list.
Dragging the Color Bar Box
At any time during the Contour Palette range oriented commands, you can
drag the Color Bar Box to select which thirty two contours are available
to you in the Contour Editing section. So the most accurate form of
Contour command syntaxes are:
[ContourPen] [drag_bar_box] CUT [drag_bar_box] pen | LAST
[ContourPen] [drag_bar_box] COPY [drag_bar_box] pen | LAST
[ContourPen] [drag_bar_box] PASTE [drag_bar_box] pen | LAST
[ContourPen] [drag_bar_box] SMOOTH [drag_bar_box] pen | LAST
The Mod(ulo) gadget
The Mod gadget is used to control the spacing of contour pens used with
the Cut, Copy and Paste commands. If you set the Mod gadget to two,
then, when you Paste pens, every other pen will be pasted. This can be
very handy for mixing two patterns together. As an example you could
use it to make all the even pens green and all the odd pens blue.
You can set the Mod gadget to any positive integer. Beware, that, when
you set the Mod gadget to a value, it stays that way. If you change it
to some value other than one, you should change it back to one as soon
as you are done, or it will probably bite you back you very quickly.
AUTOCONTOUR
The Autocontour commands are used to set the contour heights of the
current picture in a way that will evenly distribute them amongst the
contours.
You are responsible for choosing the pen patterns, pattern length and pen
colors. Autocontour will choose heights for your contours. Length of
pattern affects how much detail is shown in your picture. Refer to the
section on Coloring Pictures for a more in-depth discussion on
understanding a Mandelbrot picture.
To use the Autocontour command, set a pattern of pens in the contour
palette and pull down one of the two Autocontour menu Items.
When you choose Autocontour I, MandelVroom performs the following steps:
1. Count number of contours in contour palette. The program starts with
the righmost contour and begins counting from the first contour with a
pen number not equal to 1.
2. Calculate number of pixels in the picture minus the number of pixels
that have an altitude equal to the MaxIteration for this picture.
3. Divide the number of pixels from step 2 by the number of contours from
step 1.
4. Calculate a histogram of the number of pixels at each of the possible
heights.
The number calculated in step 3 is the average number of pixels per
contour. Using the histogram data, the program allocates heights to
contours from tallest to shortest.
There are two flavors of AutoContour. The above description applies to
the first of the two flavors. The second differs from the first, in that,
once a given contour's height range is equal to one, all subsequent
contour height ranges are set to one.
COLOR CYCLING
Pulling down the Display menu Cycling Item will give you access to the
Color Cycling control panel. Color cycling is an animation method that
treats a range of consecutive pens in the Color Palette as a rotation
register.
When "cycling", the program moves one pen's color components to another
pen. A range of consecutive pens also has a direction and a rotation
speed.
To use the Color Cycling Palette, you must also have the Color Palette
open. You can do this by pulling down the Display menu Colors Item.
On / Off
This gadget enables and disables color cycling. The purpose of the
gadget toggles with usage. If cycling is on, then pressing it turns it
off (and vice versa.)
Range
The Color Cycling control panel allows you four color cycling ranges.
Usage:
[ColorPen] RANGE ColorPen
This command gadget allows you to configure which pens are included in
the current cycling range.
Pressing the Range gadget stops color cycling. Press the On/Off gadget
to restart cycling.
The cycling range number gadgets (C1, C2, C3 and C4) allow you to select
the range number you want to configure. Once selected, you can use the
Range, Speed, and Direction gadgets to configure the range number.
Pressing these gadgets stops color cycling. Press the On/Off gadget to
restart cycling.
Direction
This gadget configures the direction of rotation for the current cycling
range. Pressing the direction gadget toggles the direction of rotation.
Pressing the direction gadget stops color cycling. Press the On/Off
gadget to restart cycling.
Speed
This gadget configures the speed of rotation for the current cycling
range. Dragging the knob changes the speed. You can also do incremental
changes to the speed by clicking in the container of the speed
potentiometer.
Using the speed gadget stops color cycling. Press the On/Off gadget to
restart cycling.
COLORING PICTURES
Now that you know how to use the tools, you must understand the subject
matter you are trying to color. Watching a number of people run this
program, it seems that the biggest stumbling block is their grasp of the
way MandelVroom treats Mandelbrot and Julia pictures as three dimensional
objects. We recommend you use the Query Height feature (described at the
beginning of the Contour section) to get a feeling for which parts of a
given picture are considered tall, and which are considered short.
In general, Mandelbrot and Julia pictures are made up of three kinds of
regions. The lower regions of a picture can be identified by large
sweeping curved areas that are all the same color. The larger the curves,
the lower the altitude. If your eye moves in a direction that leads it to
smaller and smaller sweeping curves, you are moving toward taller parts of
the picture. Eventually, these curves get so small that they are no
longer individually identifiable. When the curves get so small, the
heights associated with pixels seem to become random or chaotic. This is
the second kind of region found in Mandelbrot and Julia pictures.
Typically, these intermediate regions are the ones that we humans find
interesting in Mandelbrot and Julia pictures. When colored properly, a
structure becomes apparent and things appear ordered.
The third kind of region's pixels are the tallest in the picture. They
are all the same height. In most Mandelbrot pictures, these pixels are
typically (but not necessarily) colored black. These pixels are unlike
all the other pixels in the picture, because they have had the Mandelbrot
equation iterated the maximum number of times (refer back to the section
titled "What is a Mandelbrot set").
To make things more clear, let us consider the preset picture "Big Brot"
generated when MandelVroom first starts up. In the center of the picture,
there is a large black object that looks like a squashed bug. The pixels
that make up the bug shape are in the tallest part of the picture. Just
oustside of the black region are the tall, at first look random, pixels.
At the outer edges of the picture, there are large regions that are all
the same color (and height).
If you look at the Contour Palette associated with Big Brot, you will find
that contour zero is used to color the bug part of the picture. Contour
zero's pen is black, just like the bug. The next few contours are used to
color the region just outside the bug's body.
If you select contour one's pen, then look in the Contour Palette Title
Bar, you will notice that the height range associated with this contour is
quite large. This is because there are few pixels in the picture that
fall into this height range. By making the range large, we have
collected, gathered these pixels together under the same color. This
tends to give them a structure that might otherwise not be apparent.
If you move farther to the right (increasing contour numbers) you will
notice that the range of each of the successive contour heights gets
smaller and smaller. In this picture the contour height range goes
rapidly to one, which we do to make each of the large sweeping curves in
the lower regions a different color (and therefore identifiable).
LEARNING FROM PRESETS
We recommend you load a number of the preset pictures found in the Preset
Menu. By generating these pictures, and examining their contours, you
should be able to see how the Contour Palette was used to color pictures.
Remember that you can generate a preset by pulling down the name of the
preset you want to generate, and releasing the right mouse button. If you
have more than one preset generating at once, you can make a given preset
project current by pressing its "C" button. If you have the Contour
Palette open on the screen, then it will be updated to reflect the current
project's contours. If you didn't have the Contour Palette open, then,
when you open it, it will show you the contour settings for the current
project.
Now that you have generated a preset project, you should play with the
Color and the Contour Palette. The first few times you try to color
pictures, and until you become familiar with using the palettes, you will
probably get strange, even ugly combinations of colors and shapes. But,
you can always recreate the presets using the Preset Menu, and restart
your explorations from there.
Just remember: if you get a picture that you really like, use the Save
Item in the Project menu to save it to disk. You can then reload it, using
the Load Item in the Project menu, then change it as much as you want
without risk of loosing it. You could lose a picture, when you go to
modify something already beautiful and make it ugly.
You could also clone the picture (see below in the section New Projects),
so as to have two copies open at the same time. Then, when you change one
copy, you can compare the two versions and decide which one you like
better.
Oh, by the way, many of the best pictures in the Project drawer were
colored by accident. You can often get really beautiful effects when least
expecting them. The preset "Valley Gal" is a wonderful example of
accidental beauty.
ONWARD TO NAVIGATION
Now that you have learned how to change the colors of the preset pictures,
it is time to go off and find your own "nice" subject matters to color.
To do that, you will want to open new projects and select regions of the
presets as the starting points for your explorations. As you are going
through the next sections, remember that the "interesting" objects to zoom
into are generally the taller parts of the pictures.
The section titled "Mandelbrot Navigation" will teach you how to use
MandelVroom to move around within the Mandelbrot set. The section "Julia
Navigation" will make it clear how Julia curves are different from
Mandelbrot plots. It will also teach you how to create an infinite
variety of Julia curves.
New Projects
MandelVroom allows you to have as many projects as you have RAM for, and
they can be of two kind: Mandelbrot or Julia.
You can open new Mandlebrot projects by pulling down the New Project
Item MAND sub-Item. You can open new Julia projects by pulling down the
New Project Item JULIA sub-Item.
Although you can have many projects open at the same time, only one of
them is considered the current project. You can identify the current
project by an asterisk in the title bar of its picture window.
Whenever you open a new project, that project is made current. You can
also make any project the current one by clicking the "C" gadget in the
right margin of its picture window. In addition, you can pull down the
Projects menu Current Item from within the window you want to make
current.
If the current project is of type MAND and you pull down the New Project
Item MAND sub-Item, then MandelVroom will make the new project a copy of
the current one, and then mark it as current.
In a similar way, if you open a new Julia project from a current project
that has the type of JULIA, then MandelVroom will make the new project a
duplicate of the current one. The new project is then marked as the
current project.
If you open a new Julia project from a Mandelbrot project, then you will
be able to generate a Julia curve based on the originating Mandelbrot
project.
After learning how to navigate, you will really like having multiple
projects, because you can use each one of them as the basis for a number
of excursions. You will also be able to have a sequence of pictures to
record your journey.
Mandelbrot and Julia projects are treated identically in coloration, but
they are subtly different for navigation. The next few sections will
teach you about Mandlebrot pictures and navigation. Then we will
examine how Julia curves differ from Mandlebrot plots.
MANDELBROT Navigation
When MandelVroom starts up, it generates a picture of the Mandelbrot set.
All the Mandelbrot pictures that you have ever seen, are magnified
versions of small portions of this picture. There are an infinite number
of unique pictures within this picture.
Using a variable sized rectangular box called the Zoom Box, MandelVroom
allows you to select what parts of some picture you want to be used as the
basis of the next picture.
The next two sections, somewhat more technical, are aimed at users
interested in better understanding how MandelVroom navigation works.
Other users can move directly to the section on Zooming in.
Windows and complex plane
In MandelVroom, a Mandelbrot picture window represents a region of the
complex plane. Each pixel corresponds to a discrete location within
that region. The horizontal axis within a picture window represents the
real component of the complex plane. The vertical axis represents the
imaginary component.
Corner/Length coordinate system
When you are navigating, MandelVroom keeps track of the location (in
complex plane terms) of the upper left hand corner pixel, and the length
of the imaginary side of your complex region. Given the size of your
picture window, MandelVroom calculates the length of the real component
of the region that your picture window represents.
Zooming In
The Mandelbrot picture that you get depends on the region in the complex
plane that you have selected. Fortunately, MandelVroom does not force
you to think about your picture in complex plane terms. It gives you a
visual method for choosing new regions over which to calculate pictures.
We will to start from an already calculated picture. Then we will use a
rectangular box, called the Zoom Box, to select a region, within the
existing picture, as the one used to calculate the next picture. We call
this process of choosing smaller regions within larger regions "Zooming
In".
The steps in zooming in are simple:
1. Open a New Project for your new picture.
2. Open the Zoom Box in a previously calculated picture.
3. Position and size the Zoom Box as desired.
4. Generate the new picture in your new project.
You already learned how to open a new project in the section titled "New
Projects". The next few sections tell you how to open, position and
size the Zoom Box as desired. Pressing the "G" button in the right hand
margin of your new picture window causes MandelVroom to generate your
new picture.
The Zoom box
The Zoom Box is a rectangular box that you can place in projects to
delimit the area you want to be used for your next picture. Once you
open the Zoom Box in a picture, it will look like a line drawing of an
Intuition window. The controls are intended to be intuitive to Amiga
owners. It has a drag bar, close gadget, and two resize gadgets. The
next section tells you how to open the Zoom Box. Subsequent sections
tell you how to use the Zoom Box gadgets.
Opening and Closing
The most convenient way of opening a Zoom Box is to press the "I"
gadget in the right margin of your new project window. You should
notice that your mouse cursor has changed so that it contains the word
"TO" in it. This tells you that you are ready to open a Zoom Box in a
picture window. To complete the opening of your Zoom Box, follow
these steps:
1. Place the mouse cursor over a pixel in a previously generated
picture
2. Press and hold the left mouse button
3. Slide the mouse down and to the right.
4. When the Zoom box is of the desired size, release the mouse button
One of the things you will notice is that you get a magnified view of
the area in the Zoom Box in your new project. This is the Lens
Magnifier doing a bit map expansion, not MandelVroom doing any
Mandelbrot calculation. It gives you a rough approximation of what
your new project will look like when you press generate. You can
disable the Magnifier using the Calculate menu's Magnifier Item.
If you do not see the Zoom box within the picture, check to see if you
are trying to open in within a Julia picture. Zooming into a Julia
picture is not allowed in MandelVroom.
Now that you have placed your Zoom Box, can you identify the Zoom Box
gadgets? You can close the Zoom Box by pressing the close gadget in
the upper left hand corner of the Zoom Box. Closing the Zoom Box
eliminates the possibility of zooming in. So if you didn't mean to
open a Zoom Box, or you have decided you don't want to zoom in, then
press the Zoom Box close gadget.
Dragging the Zoom Box
The Zoom Box drag bar can be used to drag the Zoom Box around. This
is handy in case you didn't place the Zoom Box quite where you wanted.
The drag bar is the region to the right of the Zoom Box close gadget.
Resizing the Zoom Box
In the lower right hand corner of the Zoom Box, you will find the
resize gadget. This allows you to resize the Zoom Box in much the
same way you resize Amiga windows.
Proportional Resize
A Proportional Resize gadget can be found in the lower left hand
corner of the Zoom Box. This resize gadget moves all the edges of the
Zoom Box, when you resize the windows with it. When you resize the
Zoom Box in this way, the Zoom Box always maintains the same aspect
ratio as when you first touched the Proportional Resize gadget.
Generating
When you request MandelVroom to generate your new picture, it will use
the upper left hand corner of the Zoom Box as the upper left hand
corner of the new picture. The lower left hand corner of the Zoom Box
will be used as the lower left hand corner of your new picture.
Zooming Out
There are times when you will want to perform the reverse of zooming in,
called zooming out. You must use the Zoom Box to zoom out. Follow
these simple steps to zoom out:
1. Press the "O" gadget in the left margin of your picture window. The
program will open the Zoom Box at the boundaries of your project
window.
2. Shrink the Zoom box to the size that you want your picture to shrink
to after you press generate.
3. Place the Zoom box where you would like this small version of your
picture to be located in the next picture.
4. Press the "G" button to generate your new picture.
Zooming out is a good way to find out where the preset Mandelbrot
pictures are located in the preset labeled "Big Brot".
JULIA Navigation
Julia Curve navigation is much like Mandelbrot plot navigation. As a
matter of fact, the major tool you will use is our old friend the Zoom
Box.
There is one major difference between the two situations: there is only
one Mandelbrot set. All the Mandelbrot pictures you generate are all just
a subset of the entire Mandelbrot set.
On the other hand, there are an infinite number of Julia sets. The Julia
set that you get depends on a seed that you choose. You have an infinite
number of seeds to choose from. These seeds are available to you in a
nice orderly catalog called the Mandelbrot set. The picture you get when
you calculate a Julia curve depends on a location you choose out of the
Mandelbrot set.
Setting Julia Curve Seed
The first step in creating a Julia curve is to open a new Julia project.
You do this by pulling down the JULIA sub-Item of the New Project Item
in the Project menu. Once your new project is open, you should notice
an extra gadget in the right hand margin. This new gadget is labeled
"J" for Julia seed. To utilize this gadget, you must have a Mandelbrot
project window already open and precalculated. Initially, we suggest
you use the preset Mandelbrot picture named "Big Brot".
To set the seed for your new Julia project, press the "J" gadget, and
then place the mouse cursor on some pixel within your Mandelbrot
project. When you press the left mouse button, you set the seed for
your Julia project. Now start generating your picture by pressing the
"G" button in your Julia project window.
You must set a Julia seed from an existing Mandelbrot picture. If you
try to set a seed from an existing Julia picture, all you will obtain is
a copy that picture.
We recommend you open many new Julia projects, and try choosing a number
of different points within the "Big Brot" Mandelbrot project. Start
generating each (or all) of them, and see how different points within
the Mandelbrot set give you strikingly different Julia Curves.
Zooming In and Out
Once the Julia curve is generated, you can zoom in and out of it just
like a Mandelbrot picture. Zooming in enlarges small parts of a Julia
Curve. Zooming out shrinks them.
PAN(orama)
The Pan command allows you to scroll your project around in the complex
plane. To use the command:
1. Pull down the Pan-Start sub-Item
2. Place cursor in current project
3. Press and hold the Left Mouse Button (LMB).
4. Slide the mouse to Pan around.
5. Release the LMB.
6. Pull down the Pan-Generate sub-Item to produce a new picture.
Steps 1 through 5 set the scroll amount, while step 6 performs a scroll
of the project's counts data and a generation of the pixel's height and
color. Only the pixels that are left black due to the scroll will be
regenerated.
Note that, if the image does not slide, you do not have enough memory to
pan with.
NOW THE EASY STUFF
Congratulations! You just made it through what we consider the most
difficult part of this document. You have learned how to navigate and
color Mandelbrot and Julia curves. If you are confused, play with the
program until it starts to make some sense. If, after lots of playing,
you still are confused, we recommend you go to the library and check out
the August 1985 Scientific American magazine. Read the Computer
Recreations column, for a simple and concise explanation of the Mandelbrot
set and how to write a program to generate Mandelbrot pictures. This is
how MandelVroom got started.
Having made it so far, the remaining sections of this document are much
simpler and less laborious to read and understand. The next 3 sections are
the last ones directly related to Mandlebrot or Julia curves. The
sections after them will talk about things that relate to the Amiga, not
to abstract mathematical concepts.
MAXIMUM ITERATION
Very early in this document, we explained how Mandelbrot and Julia curves
are based on iterating specific functions for a given pixel location in
the complex plane. The program will stop iterating the function for one
of two reasons: the result of the equation gets large or the program hits
the maximum iteration value. Some points would iterate forever, if we
didn't put a limit on the maximum number of iterations allowed.
MandelVroom allows you to set the maximum number of iterations using the
Max Iteration Item in the Calculate menu. When you pull this menu Item
down, MandelVroom opens up the Max Iteration requester, allowing you to
key in an integer number that is used as the maximum iteration for your
current project. If you do this while the current project is generating,
you need to restart generation for it to have effect.
Beware that setting this number to its maximum value (1023) is a double
edged sword. Your pictures will be more accurate, but, if lots of pixels
in your picture are iterated to the maximum value, your pictures can take
a very, very long time to generate.
For low magnification pictures (not zoomed in too far), low iteration
values are acceptable, but, as you zoom farther in (on smaller and smaller
objects), you will need to increase the Max Iteration more and more.
Another factor that seriously affects the calculation time of your
projects (besides window size) is the data formats used to calculate the
your pictures. For additional info, see below, section on Math Modes
ORBIT
An orbit, in the context of Mandelbrot set and Julian curves, is the
sequence of all the values calculated in each step of the generating
process (up to the chosen Max Orbit Iteration value). The orbit window
will show a map of this sequence in the complex plane.
To observe an orbital display, open the Orbit window using the Special
Orbit menu Item. After the window is open, you are in orbit seed mode.
Place the mouse cursor over a Mandelbrot or Julia picture window and press
the left mouse button.
When you press the left mouse button, MandelVroom draws an orbit picture
based on the pixel that you pick within the Mandelbrot or Julia picture.
If you slide the mouse around while you hold down the left mouse button,
the orbit display will change to reflect movements of the mouse cursor.
There are two related menu Items that can be used to affect the results of
the orbit display: maximum orbit iteration and math mode.
The maximum orbit iteration can be configured using the Special "Max
Orbit" menu Item.
The math mode can be configured using the Special "Orbit Mode" menu Item.
STATISTICS
When you select this Calculate menu Item, you will see a window providing
you with detiled info for the current picture window.
The info describes the location of the region shown in the picture within
the complex plane, the size in pixels of the picture window, the gap
between end and start, and the current magnification ratio.
MATH MODES
MandelVroom supports three data formats. The fastest and least accurate
is a fractional integer format that is used for all the presets. The next
fastest (much slower) is the Amiga Fast Floating Point data format. Both
the frational integer and Amiga FFP formats keep data in thirty-two bit
variables. The FFP is slightly more accurate with extremely small numbers
because of its floating decimal point.
The last data format is the IEEE 64 bit floating point format available on
the Amiga. This is the most accurate math mode of the three supported by
MandelVroom. Unless you have a floating point hardware in your Amy, it is
also by far the slowest mode in which to calculate Mandelbrot or Julia
pictures. The higher precision of the IEEE math allows you to zoom in
much farther than is possible with either of the thirty-two bit math
formats.
A PLETHORA OF GENERATORS
If you have a stock Amiga (500, 1000, or 2000), there are three different
picture generators available to you for both Mandelbrot and Julia
pictures. If you are are a power user and can afford a 68020/68881 board
for your Amiga, then you can use two more Mandelbrot and Julia picture
generators. This means you have a total of ten picture generators at your
finger tips. This, combined with MandelVroom's multiple project support,
and the Amiga's wonderful multitasking capabilities, allows you to
generate as many projects as you want (using all the math modes) on your
screen at the same time!
You set the math mode you desire on a project-by-project basis. You can
change the math mode for the current project by using the Math Mode Item
in the Calculate menu. The Math Mode Item has five sub-Items. Their
names and meaning are as follows:
68000 - 32 bit integer with 16 bit multiplies
FFP - Amiga Fast Floating Point
IEEE - 64 bit IEEE floating point software libraries
68020 - 32 bit integer with 32 bit multiplies
68881 - 64 bit IEEE floating point using 68881 (or 68882) hardware
Note that, at the moment, the 68881 math mode will not work in conjunction
with CMI type accelerator boards, due to design incompatibilities. The
software provided with the CMI boards to-date has problems related to
proper multitasking and saving/loading registers.
LOADING AND SAVING PROJECTS
Mandelbrot and Julia curves can take a very long time to generate, so
MandelVroom allows you to save previously calculated projects on disk.
Later you can reload them from disk and keep working on them, or use them
as starting point for additional explorations. The Project menu has two
Items that you can use to perform these functions.
After generating your own project, you can save it to disk using the Save
Project Item. When you pull it down, MandelVroom opens a file name
requester that allows you to save your projects to disk.
Later, after you are tired of playing your favorite game, you can start up
MandelVroom, and reload your projects using the Load Project Item.
In the Projects drawer on the Mandelbrot floppy, we have provided you with
a number of pictures that we consider interesting and beautiful.
SAVING SCREENS
MandelVroom also allows you to save your screens as ILBM files, so you can
create your own Mandelbrot and Julia slide shows. You can save ILBMs
using the Save ILBM Item in the Project menu.
BORDERLESS
This Item, in the Display menu, lets you configure whether or not the
current project has a border with associated gadgets in it. Borderless
projects are nice when you want to use the "Save ILBM" menu Item.
When making a window borderless, the following rules apply:
If the window was smaller than the screen, the borderless window will be
the same size as the image.
If the window was the same size as the screen, the borderless window will
have the same dimension as the screen, with a black border surrounding
it. When you regenerate the picture, it will be expanded to occupy the
entire screen.
When a project becomes borderless, you must use:
the CURRENT and CLOSE Items in the Project Menu to make it current or
close it.
the GENERATE sub-Items in the Calculate menu to Start, Stop and Resume
generation of the picture.
SCREEN CONFIGURATION
The Amiga has powerful and flexible graphics hardware. MandelVroom
supports easy changes from one graphics mode to another. At any time
while you are working with MandelVroom you can change graphics modes. If
you happen to have projects generating, MandelVroom pauses the projects
long enough to close and reopen the screen and project windows.
MandelVroom supports any valid combination of low resolution, high
resolution, non-interlace, interlace and halfbrite graphics modes. It
also allows you to choose the number of colors you have in your screen.
The Color Palette always configures itself to the number of pens in your
screen.
You can change MandelVroom's screen configuration using the Display menu's
View Modes Item. The View Modes Item allows three choises: HIRES,
INTERLACE, and HALFBRITE. These sub-Items have a check mark in the right
part of the selection box when they are active. If there is a check mark
to the left of HIRES, then the screen is in HIRES mode. If you now select
the HIRES sub-Item, the check mark will go away and the screen will change
to reflect the new View Modes setting. The check mark is also used to
indicate the state of the INTERLACE and HALFBRITE sub-Items.
Please note that HIRES and HALFBRITE are mutually exclusive. The Amiga
hardware makes it impossible to have them both on at the same time.
Another thing to notice, is that MandelVroom automatically changes the
screen configuration to match new presets and projects that are being
loaded from disk.
OVERSCAN AND PAL SUPPORT
MandelVroom supports oversized (MoreRows) screens using the GetScreenData
function provided by the Amiga operating system. The default mode of
MandelVroom is to make its screen as wide and tall as your WorkBench
screen (scaled depending on View Modes). You can override the WorkBench
sizing aspects of the screen using the Screen Size Item of the Display
menu. The Standard sub-Item gives you standard size screens (i.e.
320x200, 320x400, 640x200 and 640x400). The WorkBench sub-Item (which is
the default) allows MandelVroom to scale its screen to match your
WorkBench size.
The Amiga operating system also provides a way for programs to know if
they are running on PAL machines. MandelVroom takes advantage of this
feature, and adjusts its standard screen sizes accordingly.
ENOUGH IS ENOUGH
Well, that is it. You have made it to the end. We hope you like and enjoy
the program! Please send any comments to:
Kevin Clague - USENET address: kevin@amdahl.uts.amdahl.com
US MAIL address: 2691 Bon Bon Drive
San Jose, CA 95148
(408)-270-0673