home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
437b.lha
/
MandelPAUG_v2.0
/
MandelPAUG.doc
< prev
next >
Wrap
Text File
|
1990-11-09
|
34KB
|
777 lines
MandelPAUG release 2.0 1 Oct 90
An enhanced Mandelbrot and Julia set fractal generator
exclusively for the Amiga computer!
This is a fully functional implementation of the MandFXP program which was
written by Bruce Dawson and Steve Larocque of CygnusSoft Software in
Vancouver, B.C. CygnusSoft Software released MandFXP as freely
redistributable along with its source code.
This version was produced by Jerry D. Hedden for inclusion in the
Philadelphia Amiga Users Group's (PAUG) Public Domain Software Library.
Compared to previous releases, this version has the complete on-line help
function, a fully implemented "Mandelbrot and Julia set movie" mode, and
sports many improvements in the user-interface. Non-visible changes include
code cleanup, numerous bug fixes, better utilization of chip ram, and
special code for utilizing 68020 32-bit multiplication. The algorithmic
portions of the original MandFXP source are largely unchanged.
Introduction and Theory
~~~~~~~~~~~~~~~~~~~~~~~
The Mandelbrot set and the Julia set are both what is known as 'fractals'.
For each pixel, a mathematical operation is performed repeatedly on its
coordinates until either the result grows larger than a certain limit (two)
or the operation has been performed the maximum number of times selected by
the user. This is why Mandelbrot programs take so long. For each pixel
they may have to perform the same operation hundreds of times! If the
result of the operation still hasn't exceeded two when the operation has
been performed the maximum number of times, the pixel is considered to be in
the Mandelbrot set (or Julia set) and is colored black.
One important thing about fractals is that they are infinitely complex. No
matter how far you zoom in, there will always be more detail farther in. If
you seem to be running out of detail, it is because the maximum number of
iterations is set too low. Raise it, and more of the details along the
boundary of the set will appear.
For more information try the book 'The Fractal Geometry of Nature' by Benoit
Mandelbrot [Freeman Press] (he explains it better than could be done in
the limited space available here), or past issues of Scientific American.
To get a feel for why Mandelbrot images take so much time to draw, let's
examine the case where the maximum iterations is set to 32 and the drawing
area is 320x200 covering the full Mandelbrot set. Generating the image will
require over 1,000,000 multiplications, 1,000,000 additions, 700,000
subtractions and tens of millions of other operations. No wonder...
Outstanding Features of the MandelPAUG Program
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
So just what does MandelPAUG have to offer?
- Produces Mandelbrot and Julia sets in both two and three
dimensions.
- Very fast!! Uses custom, optimized algorithms for
computations, and features a 'remember mode' that
reduces recalculations.
- Up to over 300 decimal places of accuracy. Varies
with extent of zoom.
- Full control over the number of iterations to be
performed. Selectable color increments.
- Full control over screen types and depth, window size,
colors, etc.
- Images can be saved as IFF files. Even partially
completed images can be saved, and then brought back in
for completion.
- Full zoom in and zoom out control. Even scrolling of
images is handled.
- Images and specs can be saved as presets for fast recall.
An 'undo' function can be used to recall the last
image/spec.
- Extensive on-line help! A very user-friendly interface.
- Mandelbrot and Julia set Movies! Straight zoom-in or
pan while zooming. Can be saved and loaded from disk.
Check it out and enjoy!!!
Before you run
~~~~~~~~~~~~~~
MandelPAUG requires the use of req.library for its file, color and text
requesters. Therefore, you need to copy the 'req.library' file to your
libs: directory.
If run from the CLI, set the stack to 8000 first.
Help
~~~~
The on-line help function can be reached from the menu or by pressing the
Help key. From there, select the menu items you need information on. When
done, exit the help function by pressing the escape key.
The on-line help function is primarily designed as a quick reference. More
details on any particular function can be found in this doc file.
Documentation
~~~~~~~~~~~~~
The remainder of this file contains detailed information on the functions
available in the MandelPAUG program. There is a great deal of information
here. Please take the time to read through it in order to get the maximum
utility and enjoyment from the program.
The information presented below pretty much follows the order of menu item
in the program.
New/Reset
~~~~~~~~~
Resets the program back to the startup conditions: full Mandelbrot set with
default settings. The user's disk-stored defaults, if found, will be used;
otherwise, hardwired defaults will be set.
The file used for the disk-stored defaults can be of any type that the
program handles (since they all store the default information). However,
the file must be named MandelPAUG.def.
Opening Files
~~~~~~~~~~~~~
Loads in location, iterations, colors, etc. information, as well as image
data (if saved). If 'Specs Only' were stored, then the program will start
calculating the picture 'from scratch'. If saved with it's Image, it will
load the image, and, if it was only a partially completed picture, will
resume calculations where it had left off.
Open defaults attempts to load default settings from the file MandelPAUG.def
located in the current directory. The program then recalculates the image
using these settings and the current location information.
Saving Files
~~~~~~~~~~~~
Saves current program information to a file on disk. The user is given the
option of storing the Specs (settings and location information), or the
Image (which includes the Specs). The Image need not be complete, and when
loaded, the program will continue calculations, if required.
The program uses IFF standards, so a saved Image will be compatible with
other programs that work with IFF pictures.
Saving Defaults stores current settings (but not location information) that
are used on startup, and when requested by the user. The Defaults file
will be called MandelPAUG.def.
IFF Files
~~~~~~~~~
The files that MandelPAUG stores are readable by paint programs, picture
viewing programs, and anything else that handles IFF files. The extra data
that MandelPAUG puts in the file will just be ignored by other programs.
However, if you modify a MandelPAUG file with some other program (a paint
program, for instance), don't try to load it back into MandelPAUG, as all
the extra data that MandelPAUG requires will have been stripped away.
Read/Write Errors
~~~~~~~~~~~~~~~~~
If something funky happens while reading or writing a file, you'll probably
get an error message. The message will probably refer to the specific IFF
chunk or program variable that couldn't be dealt with. The information may
not be of much use other than to let you know that the file is probably
unusable. It could be indicative of a bug, but most likely it'll be a
problem with the disk media.
Printing
~~~~~~~~
Obviously, these options require the use of a printer.
Specs - Prints out current location and setting information.
Image (Sync) - This prints out the image with the program being tied-up until
the printing is done.
Image (ASync) - As above, except spawns a separate task for the print job
that multitasks with MandelPAUG.
You might want to play with the colors a bit before printing, especially
turning the black of the set to white to save on ribbon usage.
Title Bar
~~~~~~~~~
The screens title bar can be toggled on and off.
Window Size
~~~~~~~~~~~
Allows the user to select the size of the drawing area. The drawing area is
always centered in the middle of the screen. A new image is generated in
the new window using the previous location information. If the new window's
shape is very different, the resulting image will be distorted. Use Restore
Aspect in the Zoom submenus to correct this, if desired.
Display Type
~~~~~~~~~~~~
You can choose between the high (640 pixels) and low (320 pixels) horizontal
resolutions, and between the interlaced (400 rows) and non-interlaced (200
rows) vertical resolutions. Note that if the resolution is changed, the
program will have to recalculate the image from the top.
Some high resolution modes may cause screen contention (and thus a decrease
in speed of up to 50%), if fast memory is not available. See the Bitplanes
section for more information.
Bitplanes
~~~~~~~~~
The number of bitplanes determines the number of colors available (as
indicated by the menu items), and of course, each bitplane added uses
proportionally more chip memory. Note that if the number of bitplanes is
changed, the program will have to recalculate the image from the top (except
if Remember Mode is On).
Increasing the number of bitplanes increases the amount of 'work' the
graphics chip has to do to display the screen. Hi-res mode (640 pixels)
also increases the graphics chip's loading (interlace mode doesn't). If the
load is too high, the chip will 'steal cycles' normally available to the CPU
for accessing chip RAM. This 'contention' can result in a slowdown of
programs running in chip RAM.
The 'Settings' menu item will display the potential amount of contention for
a particular screen. If the program is running in fast RAM, there is no
contention, and this number can be ignored. Using a screen blanker, or
placing the program's screen behind another with less contention (a normal
Workbench screen, for example) will also eliminate (or at least reduce)
contention.
Modifying Colors
~~~~~~~~~~~~~~~~
Brings up a color requester for changing the current color set.
Keyboard shortcuts for the requester: Arrow keys change the color
selection; R, G and B increase/decrease the color's components depending on
whether or not the shift is pressed; Left-Amiga-V and -B are 'Okay' and
'Cancel', respectively.
It is suggested that colors 0 and 1 be left as black and white,
respectively. Black represents pixels in the set, and white is used for
boundary pixels.
Loading Color Sets
~~~~~~~~~~~~~~~~~~
Loads one of the three stored color sets as the current (displayed) set.
Save the current set before using this feature, if you have modified the
colors.
Saving Color Sets
~~~~~~~~~~~~~~~~~
Stores the current colors in one of three color set buffers for later use.
Saving a color set will overwrite the data currently stored in that buffer.
This function does not store colors on disk. Save Defaults performs that
function.
Color Cycling
~~~~~~~~~~~~~
The color cycling menu options are:
Turn color cycling on and off;
Change the cycling direction; and
Set the delay time between cycling steps. Enter a value between 1 and
10000.
To shift colors a single step out or in, use the '<' and '>' keys,
respectively.
If Cycling is On when the program is generating an image, colors will cycle
one step after each line is drawn (after each pixel, if precision is three
or higher).
If Cycling is On when the image is saved, IFF cycling data will be added
that can be used by other programs.
Color Increment
~~~~~~~~~~~~~~~
The number of iterations done on a pixel determines its color. With an
increment of one, successive iteration counts map to different colors.
Thus, color bands will represent regions where the iterations is the same
for each pixel. When the bands get too thin, especially when close to the
set, increasing the color increment will widen the bands by mapping more
than one successive count to the same color.
Boundary Thickness
~~~~~~~~~~~~~~~~~~
Pictures of the Mandelbrot set tend to look best if those pixels in the set
are colored black, and those very near the boundary of the set are colored
white. This option allows you to set the percent of the iteration interval
that will be colored using color 1 (which should normally be left as white
for this effect). For example, with iterations set at 512, a 15% boundary
will cause pixels with counts between about 435 and 511 to be colored white.
Dimensions
~~~~~~~~~~
Select between a two- and three-dimensional view of the fractal. In the
three-dimensional view, each 'point' is drawn as a line whose height is
equal to the number of iterations for that point. This creates a rugged,
surrealistic landscape with steep, colorful mountains rising towards the
black hole that is the Mandelbrot (or Julia) set.
The effects created with the three-dimensional view vary from astounding to
dismal and messy. If some of your 3-D pictures don't look impressive,
perhaps try somewhere else. Increasing the color increment reduces the
contrast between the hills and valleys and improves some pictures.
Pause
~~~~~
Select this when you want the program to temporarily stop calculating. This
is useful especially on high iteration counts and a precision of 2 words,
as the program will take several seconds before responding to the mouse
button being depressed. When the pause has 'taken effect', the display will
flash. When ready to resume, select this option again.
Priority
~~~~~~~~
When calculating, MandelPAUG will consume as much CPU time as the system
will allow, and even though it multitasks properly, you may notice a
slow-down in the operation of system functions or other programs. Lowering
the priority will still allow the program to consume all the 'idle' CPU
time, and will keep it from bogging down the system.
Zoom In Options
~~~~~~~~~~~~~~~
The zoom in options (Corner/Corner, Center/Radius, Corner/Proportional, and
Center/Proportional) all allow you to specify a certain area of the image to
zoom in on. In all cases, press the left mouse button and hold it down
while moving the mouse to draw a box around the area you want to zoom in on.
Upon releasing the button, you will be asked to confirm or cancel the zoom.
There is a cancel menu for use before you start drawing a box. While
drawing, releasing the mouse button outside the window will cancel the zoom.
A '1-pixel' box (mouse not moved) will also cancel the zoom.
Corner/Corner: With this function the corners of the box are set where the
mouse button is pressed and released. As a result, the box can be any
shape. This allows you to create distorted images by drawing oblong
rectangles. This function gives you the most flexible control over the zoom
area.
Center/Radius: The center of the box is set where the mouse button is
pressed, and one of the box's corners follows the mouse's movements.
Corner/Proportional: One corner of the box is set where the mouse button is
pressed. Mouse movement will draw a box that retains the proportions of the
original image. Thus, no distortion occurs from the zoom.
Center/Proportional: Like Corner/Proportional, except the box's center is
set where the mouse button is pressed.
Restore Aspect
~~~~~~~~~~~~~~
This function will correct the distortion caused in previous zooms. The
'zoom in' variety will use the smaller 'axis ratio' for restoring the aspect
so that you end up zooming in towards the center of the window. The 'zoom
out' variety uses the larger ratio which results in a zooming out.
Zoom Out All The Way
~~~~~~~~~~~~~~~~~~~~
Takes you all the way back to the full fractal set.
Zoom In/Out Times X
~~~~~~~~~~~~~~~~~~~
These functions will zoom in/out from the center of the window by the
specified factor (2, 4, 8, or 16).
Click to Set Center of New Image
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Click on the location you want the next image to be centered on.
After selecting your 'new center', you'll be asked to confirm/cancel the
operation. There is also a cancel menu for use before you click the mouse
button. After confirmation, the program will start generating a new image
centered on your 'click'.
Click to Shift Image to New Center
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lines will be drawn on the display to identify the center of the image.
Click on the location you want scrolled to the center.
After selecting your 'new center', you'll be asked to confirm/cancel the
operation. There is also a cancel menu for use before you click the mouse
button. After confirmation, the program will start scrolling the image to
center the location you clicked on.
To stop the scrolling, select cancel from menu. Scrolling will stop after
the completion of the current step.
The wait pointer will disappear when scrolling has completed/ceased.
The 5 key on the keypad is a keyboard shortcut for this function.
Set Image Domain Manually
~~~~~~~~~~~~~~~~~~~~~~~~~
This allows you to specify the exact image area by entering the coordinates
for the corners. You may enter the data with up to 300 digits of accuracy.
Only fifteen digits of each number are displayed when in lo-res (thirty-five
in hi-res). The other digits scroll as you type.
Storing Presets
~~~~~~~~~~~~~~~
You use these functions to store the picture (or location) you are viewing
to a buffer in memory. The image (or spec) can be recalled later using the
Load Presets menu.
When you store the area, it is saved into memory using the current Preset
Storage Type (Image or Specs) at the bottom of the Store Presets submenu.
You can choose between storing location information or the entire picture.
Obviously, storing the image uses more memory.
When you have something stored in one of the presets, an 'I' or an 'S' in
menu item's text will remind you of what is stored there.
Keyboard shortcuts for storing presets are '!' through ')' (i.e., shifted
'1' through '0').
Loading Presets
~~~~~~~~~~~~~~~
Pictures or locations that have been saved to memory are redisplayed with
this function. Keyboard shortcuts have been provided for loading the
pictures so that a short slide show effect can be created. You can either
hit one of the number keys (1 to 0) to display one of the presets, or you
can hit '=' (for '+') or '-' to display the next or previous preset with an
image stored in it. By holding down either the '=' or '-' key you can make
quite an effective high-speed slide show. (This feature is somewhat
obsolete with the implementation of the movie mode.)
Undo
~~~~
The 'UNDO' function will return the program to the state before it last had to
redraw the screen (you can even undo an undo). It uses the current Previous
Storage type (Specs or Image) specified at the bottom of the menu. The options
allow you to decide how much information the computer will keep track of for
the UNDO function. If Specs is selected, only the location, window size,
iterations, etc. is remembered, but none of the image is retained. With Image,
'everything' is remembered. Obviously, retaining the Image uses more memory.
Iteration Count
~~~~~~~~~~~~~~~
Allows you to set the maximum number of calculations the program will
perform for each pixel. Any pixel that reaches this maximum is considered
to be in the Mandelbrot set and is colored black. Higher numbers take
longer, but produce 'better looking' pictures.
The Set Maximum item allows you to enter your own value for the maximum
number of iterations to be performed on each pixel. When selected, a
requester appears for you to enter a value between 2 and 32767. Remember,
higher values result in proportionally longer times for generating pictures.
The value you specify will be set in the next to the last menu item.
Fractal Equation Selection
~~~~~~~~~~~~~~~~~~~~~~~~~~
The Julia set is very similar to the Mandelbrot set. Both use the equation
z = z^2 + c, where z and c are complex numbers. Both use the location of
each individual pixel as the initial value of z. Further, the Mandelbrot
set uses the location of each pixel as the value of c, whereas the Julia set
uses a constant c for the entire image. This constant value of c is set by
the user, either manually when selecting the 'Julia Set' option, or
automatically by clicking on a Mandelbrot image after selection the 'Click
Julia c' option. The concept behind the automatic entry is that each point
in the Mandelbrot set has an associated Julia set. The 'connected-' or
'fragmented-'ness of a Julia set image is affected by how far its c value is
from the edge of the Mandelbrot set.
When going from the Mandelbrot set to a Julia set, the last Mandelbrot set
information is stored in a special preset. Whether specs, or specs and
image are retained is determined by the setting at the bottom of the Store
Presets menu. Upon 'returning' to the Mandelbrot set, this preset
information is used to regenerate the display.
Remember Mode
~~~~~~~~~~~~~
This mode allows MandelPAUG to keep a 'memory' of the iterations required
for each pixel. While the cost in terms of memory usage will be heavy, the
benefits can be well worth it.
With this enabled, you can change the number of bitplanes, or the color
increment, or the boundary thickness, or the dimension and the program will
intelligently recalculate only that which is necessary. Most of the above
will require NO recalculations at all! Only drawing time would be required.
Lights, Camera, Action... Here comes Mandelbrot movies!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Perhaps the most stupendous feature of the MandelPAUG program is the ability
to automatically produce a series of images that can be "connected" together
to form a movie. The effects that can be produced with this feature are
rare and beautiful, and probably not available anywhere else on a personal
computer.
You can make movies from the Mandelbrot set, from any of the infinite
number Julia sets, or make a movie of a series of Julia sets.
Movies on Disk
~~~~~~~~~~~~~~
The frames of a movie are saved as individual IFF files, and have filename
suffixes ranging from '.001' to '.999'. When saving to disk, if you supply
a filename with no suffix, the frames will start with '.001'. If you supply
a suffix, the program will use it (e.g., if you supply 'movie.005', that
will be the name given to the first frame; the second will be 'movie.006',
and so on). When loading, if you supply a filename with no suffix, the
program will attempt to load your filename with suffix '.001' added. If
your filename has a suffix, it will load that as the first frame, and
proceed sequentially. Loading will halt when it runs out of files to load,
or when the Maximum Frames count is reached (or sooner if you run out of
memory). (E.g., if you specify 'movie.003' and a max of 5 frames, the
program will load 'movie.003' through 'movie.007'.)
Movie frames must all be of the same screen type. If a loaded frame has a
different screen type from the previous frame, the movie will be deleted
from memory. (This can come about when concatenating two movies by renaming
the frame files.)
Movie Playback
~~~~~~~~~~~~~~
Movie playback can only be performed by pressing F1 (i.e., there is no menu
item for playing a movie). Once started, the movie will play continuously
until another key (not F1) is pressed.
Movie Playback Delay
~~~~~~~~~~~~~~~~~~~~
Allows you to set a delay from 0 to 3600 that is used between frames when
playing back a movie. A delay of 60 equates to about 1 second.
Loading a Movie
~~~~~~~~~~~~~~~
Allows you to load a previously saved movie from disk. The program will
load frames from the one specified until it runs out of frames or until it
has loaded the maximum number specified in the 'Frames' menu item.
Saving a Movie
~~~~~~~~~~~~~~
Allows you to save a movie currently in memory to disk. Frames are stored
as individual IFF files that are numbered sequentially. If a numeric suffix
is supplied in the filename, it will be used for numbering the saved frames.
Note that the specification data stored in frame files will be incorrect,
except for the last frame. Make the movie to disk if you require proper
specs in each frame's file.
Maximum Number of Movie Frames
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Allows you to set the maximum number of frames in a movie.
Where to Make the Movie
~~~~~~~~~~~~~~~~~~~~~~~
Movie frames can be saved to disk as they are completed, can be kept in
memory for subsequent playback, or both. The default is to make it in
memory, but not to disk.
With 'Make to Disk', frames are saved as individual IFF files that are
numbered sequentially. When you start making a movie, you'll be asked for a
filename. If a numeric extension is supplied in the filename, it will be
used for numbering the frames.
Making to disk will ensure that each frame's file contains proper specs that
can be subsequently used by the program, if required.
Set Multiplier for Movie Zooms
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Allows you to set a 'multiplier' from 1 to 65535 that will used to determine
the zoom factor between movie frames. The zoom factor will be 65536 divided
by the multiplier (e.g., 32768 would be a zoom of 2; 43691 a zoom of 1.5).
Set Multiplier With Mouse
~~~~~~~~~~~~~~~~~~~~~~~~~
Allows you to set the 'multiplier' using the mouse. Frame the size of the
window you want zoomed in on for each movie frame, and then click the mouse
button.
Zoom-In On Center Movie
~~~~~~~~~~~~~~~~~~~~~~~
Makes a 'zoom in on the center' type movie on the current image; using the
'multiplier' to determine the zoom factor between frames.
Zoom-In On an Area Movie
~~~~~~~~~~~~~~~~~~~~~~~~
Hold the mouse button and frame a area you want zoomed in on for the movie.
The options allow you to set an area proportional to the current window
either by 'dragging' the box from corner to corner, or by clicking on the
center and dragging outward. The program will then make a movie that zooms
and shifts from frame to frame. The zoom factor is determined
automatically based on the size of the area you select and the number in the
Frames menu item.
Preset 1 to Preset 2 Movie
~~~~~~~~~~~~~~~~~~~~~~~~~~
This feature makes a movie that spans from the information stored in Preset
1 to that stored in Preset 2. In other words, the first frame will be what
is specified in Preset 1, the last uses Preset 2, and the frames in between
will zoom and pan between the two. Obviously, all that is required is that
information be set in Presets 1 and 2. The zoom factor is determined
automatically based on the data in the Presets and the number in the Frames
menu item.
Preset 1 can be set with either an image or a spec. If it is an image, the
image will be used (and completed if only partially done). Preset 2 can be
image or spec, too. However, the program only uses location data from
Preset 2. Thus, even if Preset 2 contains an image, it will not be used,
and the last frame of the movie will be calculated in full.
Julia Set Movies
~~~~~~~~~~~~~~~~
Julia set movies are a series of full Julia set images in which the 'c'
value changes between frames.
First, setup on a initial Mandelbrot set image. Don't zoom in too far or
the 'c' values won't change much and the frames will all look alike. Next,
press F9 or use the menu for Julia Movie. Now click the mouse on the
Mandelbrot image, and while holding down the mouse button, 'drag' a line.
The Julia set images will use 'c' values along this line at intervals
determined by the number of frames you specify.
Julia set movies can be made in RAM or to disk, saved, loaded and played
back just like 'zoom-in' movies.
Delete the Movie From Memory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Deletes a movie from memory, and releases the memory it used. You don't
have to clear out one movie before making or loading another; the program
will do that automatically.
Cut!
~~~~
You can cancel a movie in the making with the cancel menu. That will cause
the current image to be the last frame, and control will return to you when
that image is finished.
Show Current Settings
~~~~~~~~~~~~~~~~~~~~~
This displays information about the current program settings. Most of the
items refer to current options selectable by the user. See the Bitplanes
section for information about contention. The Image Domain refers to the
coordinates for the left edge, horizontal center, right edge, top edge,
vertical center and bottom edge of the display. The Precision refers to the
number of 16-bit words of data used to represent numbers in the program. As
you zoom in, the Precision will increase and so will the calculation times.
You can zoom in up to 31 words of precision. (I don't think you'll ever get
that far. The most I ever did was 7, and it took 2.5 DAYS! to generate a
hi-res interlaced image on a 68010 processor.) The time at the bottom of
the display refers to the amount of time the program has spent generating
the current image. It is intended to give you an idea as to how rapidly
picture generation is proceeding, and may not perfectly accurate (or even
correct). In particular, many menu operations do not 'pause the clock'
(although some do), and scrolling after the picture has completed does not
add to the time.
Help Mode
~~~~~~~~~
When in help mode, just select a menu item, and any information on the item
will be displayed. Some items may tell you to refer to this doc file for
specific information (the trivial one do that). Some items may have more
than one page of information. If <more> is at the bottom of a page, click
with the mouse or hit space to get the next page.
When done with help, click the close gadget or hit escape.
The help key or a '?' can be used to access the help mode in addition to
using the menu.
Keyboard Usage
~~~~~~~~~~~~~~
Amiga users have come to appreciate the ability to use single keystrokes to
access functions instead of having to constantly use the menus. Thus,
MandelPAUG allows menu items with shortcuts to be accessed by typing the
shortcut key all by itself (as well as with the Right-Amiga key
combination).
Menu keys (and alternates):
X : New/reset
O : Open spec/image
S : Save image
P : Spawn task to print image
W : Change window size
K : Modify colors
Tab : Turn color cycling on/off
. : Change color cycling direction to 'in'
, : Change color cycling direction to 'out'
Space/Caps lock : Pause
Q/Escape : Quit
D : Zoom in corner/corner (along diagonal)
R : Zoom in center/radius
C : Zoom in corner/proportional
M : Zoom in center/proportional (from middle)
] : Zoom in two times
} : Zoom in sixteen times
A : Restore aspect (zoom in)
Z : Zoom out all the way
[ : Zoom out two times
{ : Zoom out sixteen times
Keypad 5 : Click on center with scrolling
! thru ) : Store presets
1 thru 0 : Load presets
U/Backspace : Undo
J : Click on Mandelbrot image to set Julia set 'c' value
F2 : Enter 'frame delay' for movie playback (60 = 1 sec.)
F3 : Enter number of frames to make/load
F4 : Toggle make 'to disk'
F5 : Toggle make 'in RAM'
F6 : Set 'multiplier' with mouse
F7 : Make a central zoom movie
F8 : Make movie using presets 1 and 2
F9 : Make a Julia set movie
F10 : Erase movie from memory
I : Show information on current image
?/Help : Help mode
Some functions, by the nature of their operations, cannot be accessed
through menus. These include:
F1 : Play movie continuously (press any other key to stop)
> : Cycle colors one step 'in'
< : Cycle colors one step 'out'
- : Display previous image stored in presets
= : Display next image stored in presets
The image can be scrolled using either the numeric keypad, or the arrow
keys. The numeric keypad is configured to scroll the window as follows:
7-up,left 8-up 9-up,right
4-left 6-right
1-down,left 2-down 3-down,right
The arrow keys function analogously.
Using the shift key with a scrolling key will repeat the step 10 times. To
stop multiple scrolling, select cancel from the menu. Scrolling will stop
after the completion of the current step.
The wait pointer will disappear when scrolling has completed/ceased.
There are keyboard shortcuts that can be used when entering the image domain
or entering the 'c' value for the Julia set. Hitting return moves the
cursor to the next 'box'. On the last box, the cursor disappears. At this
point, you can: Hit return to put the cursor back to the first box; hit 'Y'
or Left-Amiga-V to simulate selecting the confirm gadget; or hit 'N', 'Q',
Escape, or Left-Amiga-B for cancel.
There are also a number of keyboard shortcuts that can be used with the
color requester. See information on 'Modify Colors' for details.
Bugs and Unusual Features
~~~~~~~~~~~~~~~~~~~~~~~~~
On an A3000 with an "interlace" screen, the file requester is unreadable.
This is a problem between req.library and WB 2.0 that I can do nothing
about.
The frame files for a movie that is made in memory and then saved to disk
will all contain the location information for the last frame (i.e., the
location data will not match the image except for the last frame). Thus,
strange things may occur if one of these files is loaded as a separate
image for zooming, movie making, etc. Making the movie to disk will ensure
that correct location data is saved in each frame file.
If a movie is present in memory, and the display characteristics are
changed (bit planes, interlace, resolution, etc.), the movie will be
deleted from memory.
Remember: "There's always one more bug!"
Source Code
~~~~~~~~~~~
Source code is available for both MandelPAUG and its 'parent' MandFXP.
Send either $5.00 or a self-addressed-stamped mailer with a blank disk to
the address below.
Questions, Bug Reports, Source Requests
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I can be contacted at:
Mailing address:
Jerry D. Hedden
28 Windemere Dr.
Sicklerville, NJ
08081-3023
Home phone: 609-629-3975
Internet: hedden@eniac.seas.upenn.edu