home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-06-30 | 76.5 KB | 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
-
-