home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
programs
/
graphics
/
fractals
/
slicer
/
slicer.doc
< prev
next >
Wrap
Text File
|
1995-02-27
|
22KB
|
563 lines
Slicer 2.1:
Slicer is a program for creating abstract art based on mathematical
functions, such as the Mandelbrot set, Julia sets, and related abstractions
(chaotic dynamical systems). Features include; fast fixed or floating point
arithmetic, many different functions (z²+c, z³-3a²z+b, sin(z) ...), many
computation options (level sets, binary decomposition, epsilon cross,
distance estimate), many coloring and rendering options, images may be
recolored without recomputing, batch mode, focus, multi pass, zoom in, zoom
out, pan, quick 2x zoom, and four dimensional navigation. The program is
named "Slicer" because the pictures it makes can be thought of as cross
sections or "slices" revealing the insides of solid (if imaginary) objects.
For those who remember Slicer 1.x, forget it. This program is completely
new, faster, more powerfull, easier to use, and I hope easier to
understand.
************************************************************************
Distribution:
Copyright 1992 by Gary Teachout
This program is freeware, and may be distributed freely. It may be
distributed along with other freely distributable software. It may not be
sold for profit, or included as part of a commercial software product. No
donations are required but they would be accepted and appreciated.
************************************************************************
Disclaimer:
THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO ITS FITNESS FOR ANY
PARTICULAR PURPOSE. This software is experimental and IT HAS DEFECTS, if
you do not accept all of the risks and responsibilities of using defective
software, then DO NOT USE THIS.
************************************************************************
Requirments:
Slicer needs lots of memory, 1Mb of ram or more is best. On a 1Mb system
you can use 640x400 screens with about 2000 bytes to spare, overscan will
require more ram.
To save picture files the, ILBM.Library must be in your LIBS: directory.
It is included and may be installed by clicking the "Instal-ILBM-Lib" icon.
************************************************************************
Acknowledgments:
I would like to thank the following for helping to make Slicer work as
well as it does, and for saving me a lot of work:
Justin V. McCormick, for the PathMaster file selector.
Software Dissidents, for the ILBM.Library.
************************************************************************
Getting started:
You may start Slicer by double clicking its icon, or a Slicer project
icon, or you may run it from the CLI, or a script (see "Batch mode" below).
When you start Slicer, you will first see the screen format requester. The
default is a 320 X 200 screen with 32 colors, low res screens will be
completed faster than high res screen. Click the "START" button, if a file
was specified Slicer will load and begin working on it, otherwise it will
begin computing a default image of the Mandelbrot set.
************************************************************************
Screen Format Requester:
When Slicer starts out you will see the screen format requester. Select
the screen size and number of colors you wish to work with, then click the
"start" button. Note that Slicer can create overscan sized images, but it
does not display them in overscan.
************************************************************************
Palette Requester:
To change the colors in the screens palette, select the "Palette" item
from the "Picture" menu, and the palette requester will be displayed.
Select the color to be changed by clicking that color in the grid on the
right of the requester, the selected color will be marked with a solid box,
the previously selected color will be marked with a dotted box. The
selected color may be changed by moving either the red, green, blue,
(R,G,B) or hew, saturation, luminance, (H,S,L) sliders. To create a
continuous range of colors, select and set the color at one end of the
range, select and set the color at the other end of the range, then click
the "RANGE" button.
************************************************************************
Color Maps, and the Color Map Requester:
The color map is used to specify how the screens palette colors are used
within the picture. For each pixel in an image, Slicer computes a number
called the dwell, the color map specifies which palette colors are used for
each dwell value. The "Color Map" item from the "Picture" menu has an array
of subitems that will create an assortment of convenient color maps. Each
time you create a new image (by zooming or using any item from the "Slice"
menu), it will be necessary to try a few new color maps.
Selecting the "Edit" subitem will bring up the color map requester for
customizing the color map. The graph at the top is a hystogram of the dwell
values for the slice. With the "RANGE" button, you can fill in part of the
color map with a range of colors.
************************************************************************
Edit Slice Specs Requesters:
With these requesters you may specify which abstraction you want to see,
the location, orintation, magnification, and other details of the slice.
Specs Requester:
Dwell Limit Maximum number of iterations. Generaly the
larger this number is, the more detail will be
revailed, and the longer it will take to
complette the picture. As you increase
magnifcation (zoom in) you will also need to
increase the dwell limit. See the "Arithmetic"
section below.
Magnification The zoom factor. The larger the magnification,
the smaller the area of the slice covered in the
image.
Location These four variables specify the location in
four dimensions of the point in the center of
the image. "x", and "y" are the components of
the complex variable "z" (the orbiting or
chaotic variable). "a", and "b" are the
components of the complex variable "c" (the
fixed or reference variable).
Extra Variables
These four variables have differant meenings for
differant functions. "f", and "g" may be the
components of the complex variable "h". "q" and
others may be used as escape thresholds. See the
"Arithmetic" section below.
Mouse Location These buttons set the location or magnification
Mouse Magnification to that of the region previously selected with
the mouse. See "Regions" below.
Orientation These buttons set the plane of the slice
parallel to one of the six orthogonal planes.
You are not limited to these six planes, see the
"Move Requester" below.
a b This plane is parallel to the Mandelbrot set
(the fixed or reference plane).
x y This plane is a Julia set (the plane where
chaotic motion takes place).
a x These planes have each dimension aligned with
a y one dimension of each of the planes above.
x y Allowing you to see slices perpendicular (edge
y b on) to the Mandelbrot and Julia sets.
Arithmetic The up and down arrow buttons allow you to
select which function you wish to see, and the
numerical precision. See the "Arithmetic"
section below.
Specs With these buttons you may switch between the
Move three slice specs requesters.
Basis
START Begins creating a new image based on the
information specified above. WARNING the
previous image will be lost.
RESET Restore the information above to that of the
current image.
CANCEL Ignore the information above and return to the
current image.
Move Requester:
Distance This is the relative distance used by the Move
buttons below. Where a distance of one is equal
to one half the width of the screen.
Move Each of these buttons will move the center of
x+ the slice "Distance" in the specified direction.
y+ "x+" and "y+" will pan within the plane of the
a+ current slice, "a+" and "b+" will move the plane
b+ perpendicular to the current slice.
Angle This is the angle (in degrees) used by the
rotate buttons below.
Rotate Each of these buttons will rotate the plane of
x y the slice.
x a
y a
a b
x b
y b
Basis Requester:
Basis vectors These numbers are used internally to keep track
of the orientation of the slice.
Aspect Ratio Pixel width divided by pixel height.
D Set aspect ratio to the default for the screen
size.
************************************************************************
Arithmetic:
1 z=z²+c Level Sets 48bit
This is the traditional way of creating images of the Mandelbrot and
Julia sets. You may start your search with the default image, or set the
dwell limit at 32 or more, the magnification at 0.5, each location
variable at zero, and "q" (the escape threshold) from the extra
variables at four.
2 z=z²+c Level Sets IEEE
Same as above, but computed at a higher level of precision.
3 z=z²+c Binary Decomposition 48bit
Binary decomposition surrounds the set with a checkerboard like pattern.
These are best on a high res screen with two, or four colors. Start your
search as above, but with "q" set to 150.
4 z=z²+c Binary Decomposition IEEE
Same as above, but computed at a higher level of precision. "q" may be
set from 150, to 10000.
5 z=z²+c Epsilon Cross 48bit
Epsilon cross shows a tangle of intersecting arcs inside and outside of
the set, the "f" and "g" variables set the thickness of these arcs.
These are best on a high res screen with two, or four colors. Start your
search with the dwell limit at 32 or more, the magnification at 0.5,
each location variable at zero, "f" and "g" at 0.0001, and "q" at four.
6 z=z²+c Epsilon Cross IEEE
Same as above, but computed at a higher level of precision.
7 z=z²+c Distance Estimate / f IEEE
This surrounds the set with an aura based on an estimate of the distance
to the set divided by "f". These distance estimates are correct only for
the "a b", and "x y" orientations, though other orientations may still
be interesting. Start your search with the dwell limit at 100 or more,
the magnification at 0.5, each location variable at zero, "f" should be
set similar to the magnification, and "q" may be set from 150, to
100000.
8 z=z²+c Distance Disk < r IEEE
This surrounds the set with a thin border if an estimate of the distance
to the set is less than "r". This mode works only for the "a b", and
"x y" orientations, also the quick zoom (2x) should not be used. These
are best on a high res screen with two, or four colors. Start your
search with the dwell limit at 100 or more, the magnification at 0.5,
each location variable at zero, "r" set at 0.5, and "q" may be set from
150, to 100000.
9 z=z²+(c*1^n) Level Sets IEEE
Alternates between z²+c and z²-c. Set specs like #1 above.
10 z=z²+¹/c Level Sets IEEE
The Mandelbrot set turned inside-out. Set specs like #1 above.
11 h=h³-3c²h+z Level Sets IEEE
The four-dimensional Mandelbrot set (usualy written z=z³-3a²+b). Set "f"
and "g" to zero, "q"to four. If using the "a b" orientation "x" and "y"
must not both be zero.
12 z=z³-3c²z+h Level Sets IEEE
The two dimensions from the four-dimensional Mandelbrot set, and two
from its Julia sets. If using the "a b" orientation "f" and "g" must not
both be zero.
13 z=z³-3h²z+c Level Sets IEEE
The other two dimensions from the four-dimensional Mandelbrot set, and
two from its Julia sets.
14 z=(2z³-1)/3z²+c Level Sets IEEE
This is Newtons method to solve z³-1=0. Start with the the dwell limit
at 32 or more, the magnification at 0.5, each location variable at zero,
"r" at 0.00005, and the orientation set to "x y".
15 z=((z²+c-1)/(2z+c-2))² Level Sets IEEE
Start with the dwell limit at 32 or more, the magnification at 0.5, each
location variable at zero, "r" set at 0.00005, and "q" may be set at 100
or more.
16 z=sin(z)*c Level Sets IEEE
Start with the dwell limit set from 16 to 32, the magnification at 0.15,
"x", "y", and "b" at zero, "a" at one, "q" at 50, and the orientation
set to "x y".
17 z=cos(z)*c Level Sets IEEE
Start with the dwell limit set from 16 to 32, the magnification at 0.5,
"x", "y", and "b" at zero, "a" at about 2.95, "q" at 50, and the
orientation set to "x y".
18 z=c*e^z Level Sets IEEE
Start with the dwell limit set from 16 to 32, the magnification at 0.2,
"x" at two, "a" at about 0.47, "y" and "b" at zero, "q" at 50, and the
orientation set to "x y".
19 v=(x,y,a,)v(1-v) Lyapunov Space IEEE
This iterates the logistic formula (usually written "x=rx(1-x)") and
replaces "r" with each of the location components in turn. The extra
veriables "f", "g", and "q" specify how many times each location
variable "x", "y", or "a" is used before moving on to the next one. The
dwell limit sets the number of initial iterations (the settling down
period). "r" sets the number of iterations for calculating the Lyapunov
exponent. For two-dimensional Lyapunov space start with the dwell limit
at 50 or more, "r" at 200, the manification at 0.8, "x" at three, "y" at
3.4, "f" and "g" at one (or some larger integers), orientation set to
"x y". For three-dimensional Lyapunov space set "q" to some positive
integer, and try different locations and orientations (note that this is
three dimensional, the "b" dimension is not used).
20 ???
At this time there are 19 functions, but more may easily be added. If
you know of a function or algorthim that makes interesting pictures,
send me a description and it may be included in a future version of
Slicer.
************************************************************************
Regions:
To select a region within an image, position the mouse pointer over the
center of the region and press the mouse button. A box will be highlighted,
to change the size of the region drag the mouse in any direction (the box
that appears before you move the mouse, is a fast 2x zoom). When you
release the mouse button, the location and size are stored for use by the
"Zoom In", "Zoom Out", "Pan", and "Focus" menu items. You may also zoom in
on the region by clicking the menu button while holding the mouse button
then releasing both buttons.
************************************************************************
Batch Mode:
When run from the CLI or from a script file, Slicer may be programmed to
save its results and quit automatically (see the "When Complete" menu item
below). This allows you to use a script to keep your Amiga busy all night
completing many pictures.
SLICER [<project>]
This will run Slicer as if it were run from the workbench.
SLICER -b <project> [<picture>]
With this option, Slicer will complete the project and save it, then quit.
If a picture file name is included, it will also save it as a picture file.
SLICER -bp <project> <picture>
With this option Slicer will complete the project and save only the picture
file, then quit.
************************************************************************
MENUS:
Project This menu controls what Slicer is doing
with the entire project.
Load Load a Slicer project file with the
requested file name.
Save Save a Slicer project file with the
existing file name.
Save as Save a Slicer project file with the
requested file name.
Save Specs Save a Slicer project file without any
image data (specifications only).
Focus Direct Slicer to complete a portion of the
image first.
ON F Begin to focus on the region selected
with the mouse.
OFF Return to working on the whole image.
Multi Pass Toggle multi pass on/off.
When Complete Direct Slicer to take the following
action when the project is complete.
Save Picture Save image as IFF ILBM file.
Save Project Save Slicer project file.
Quit Exit Slicer.
Quit Q Exit Slicer.
Picture This menu controls how the picture is
rendered.
Save Picture Save image as IFF ILBM file.
Color Map Change the way the palette colors are used
within the image.
Edit C Use the color map editor to create a
custom color map.
a 1 a 2 a 4 Select from default color maps.
b b ...
c ... ...
... ... ...
Palette P Use palette requester to change the colors
in the palette.
Cycle Colors Rotate colors within the palette.
1+ Up 1
1+ Down 2
Up 3
Down 4
Restore R
Title Bar T Toggle title bar on/off.
Pointer A Toggle mouse pointer on/off.
Slice This menu controls what picture is being
created.
Zoom In Z Zoom in on the region selected with
the mouse.
Zoom Out Zoom out 2x centered on the region
selected with the mouse.
Pan Recenter the slice on the region selected
with the mouse.
Edit Create a new slice.
Specs S Edit slice specsifications.
Move M Relative move in four dimensions.
Basis B Access to some arcane internal
variables.
************************************************************************
Recommended reading:
The Beauty of Fractals.
Heinz-Otto Peitgen and Peter H. Richter.
Springer-Varlag, 1986.
The Science of Fractal Images.
Edited by Heinz-Otto Peitgen and Dietmar Saupe.
Springer-Varlag, 1988.
The Fractal Geometry of Nature.
Benoit B. Mandelbrot.
W. H. Freeman and Company, 1983.
Turtle Geometry. The Computer as a Medium for Exploring Mathematics.
Harold Abelson and Andrea diSessa
MIT Press 1981
Computer Recreations. A computer microscope zooms in for a look at the
most complex object in mathematics.
A. K. Dewdney in Scientific American, Vol. 253, No. 2,
pages 16-24; August 1985.
Computer Recreations. Beauty and profundity: the Mandelbrot set and a
flock of its cousins called Julia.
A. K. Dewdney in Scientific American, Vol. 257, No. 5,
pages 140-145; November 1987.
Computer Recreations. (Response from readers).
A. K. Dewdney in Scientific American, Vol. 258, No. 3,
page 117; March 1988.
Computer Recreations. A tour of the Mandelbrot set aboard the Mandelbus.
A. K. Dewdney in Scientific American, Vol. 260, No. 2,
pages 108-111; February 1989.
Mathematical Recreations. Leaping into Lyapunov Space.
A. K. Dewdney in Scientific American, Vol. 265, No. 3,
pages 178-180; September 1991.
************************************************************************
Please contact me if you have any comments, or bugs to report.
Gary Teachout
10532 66 Place, W
Mukilteo, WA 98275
USA