Category : Printer + Display Graphics
Archive   : FRACZOOM.ZIP
Filename : FRACTAL.DOC

 
Output of file : FRACTAL.DOC contained in archive : FRACZOOM.ZIP















Fractal Zoom
Version 2.00b












(c) Copyright 01-17-1989 by Roger W. Clapp III
3317 Valencia Road
Tampa, Florida 33618

Modem: (813) 971-2934












Support Shareware! If you enjoy using this program, a small
contribution is requested. $20.00 is suggested; any amount would be
appreciated. For contributions of $20.00 or more, I will send you a
disk with all the source code for this program, plus several pictures.





















Version 2.00b Fractal Zoom Page 1

Table of Contents
-----------------

What Fractal Zoom Does . . . . . . . . . . . . . . . . . . . . . 3

Equipment Needed . . . . . . . . . . . . . . . . . . . . . . . . 4
Color Graphics Adapter . . . . . . . . . . . . . . . . . . . 4
Enhanced Graphics Adapter . . . . . . . . . . . . . . . . . 4
8087 Math Coprocessor option . . . . . . . . . . . . . . . . 4

Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . 4
FRACTAL . . . . . . . . . . . . . . . . . . . . . . . . . . 4
FRACTL87 . . . . . . . . . . . . . . . . . . . . . . . . . . 4
FRACTAL.PIC . . . . . . . . . . . . . . . . . . . . . . . . 4
CGA.PAL . . . . . . . . . . . . . . . . . . . . . . . . . . 4
EGA.PAL . . . . . . . . . . . . . . . . . . . . . . . . . . 4

A Note About Notation . . . . . . . . . . . . . . . . . . . . . . 5
[brackets] . . . . . . . . . . . . . . . . . . . . . . . . . 5
Yes/No questions . . . . . . . . . . . . . . . . . . . . . . 5

How To Operate Fractal Zoom -- A First Look . . . . . . . . . . . 5
Mandelbrot Mode . . . . . . . . . . . . . . . . . . . . . . 5
Julia Mode . . . . . . . . . . . . . . . . . . . . . . . . . 5

Quitting Fractal Zoom . . . . . . . . . . . . . . . . . . . . . . 6
[Escape] . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Cursor Commands . . . . . . . . . . . . . . . . . . . . . . . . . 6
[Home] . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
[End] . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
[Page Up] . . . . . . . . . . . . . . . . . . . . . . . . . 6
[Page Down] . . . . . . . . . . . . . . . . . . . . . . . . 6
[Cursor Left] . . . . . . . . . . . . . . . . . . . . . . . 6
[Cursor Right] . . . . . . . . . . . . . . . . . . . . . . . 6
[Cursor Up] . . . . . . . . . . . . . . . . . . . . . . . . 6
[Cursor Down] . . . . . . . . . . . . . . . . . . . . . . . 6
[Control Cursor Left] . . . . . . . . . . . . . . . . . . . 6
[Control Cursor Right] . . . . . . . . . . . . . . . . . . . 6
[Control Page Up] . . . . . . . . . . . . . . . . . . . . . 6
[Control Page Down] . . . . . . . . . . . . . . . . . . . . 6

Miscellaneous Commands . . . . . . . . . . . . . . . . . . . . . 7
[F1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
[Escape] . . . . . . . . . . . . . . . . . . . . . . . . . . 7
[Scroll Lock] . . . . . . . . . . . . . . . . . . . . . . . 7
[1-10] . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
[+][-] . . . . . . . . . . . . . . . . . . . . . . . . . . . 8



(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 2

Letter Commands . . . . . . . . . . . . . . . . . . . . . . . . . 8
[A] - toggle [A]larm on/off . . . . . . . . . . . . . . . . 8
[C] - [C]ontinue calculating . . . . . . . . . . . . . . . . 8
[D] - [D]irectory of files on disk . . . . . . . . . . . . . 9
[E] - [E]rase a file . . . . . . . . . . . . . . . . . . . . 9
[F] - change de[F]ault drive . . . . . . . . . . . . . . . . 9
[H] - [H]elp screen . . . . . . . . . . . . . . . . . . . . 10
[I] - maximum number of [I]terations . . . . . . . . . . . . 10
[L] - [L]oad a picture . . . . . . . . . . . . . . . . . . . 10
[M] - [M]anually enter BOX location . . . . . . . . . . . . 10
[N] - [N]ew drawing method . . . . . . . . . . . . . . . . . 11
[P] - change [P]alette colors . . . . . . . . . . . . . . . 12
[Q] - toggle [Q]uickCalc on/off . . . . . . . . . . . . . . 13
[R] - [R]edisplay the main picture . . . . . . . . . . . . . 13
[S] - [S]ave a picture . . . . . . . . . . . . . . . . . . . 14
[U] - [U]pdate picture to a higher iteration count . . . . . 14
[V] - [V]iew misc. . . . . . . . . . . . . . . . . . . . . 14
[Z] - set picture si[Z]e . . . . . . . . . . . . . . . . . . 15

Summary of Commands . . . . . . . . . . . . . . . . . . . . . . . 17

How to Operate Fractal Zoom -- A Second Look . . . . . . . . . . 18
Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Selecting an area to magnify . . . . . . . . . . . . . . . . 18
Factors for quick calculation . . . . . . . . . . . . . . . 19
Calculating, and features for big pictures . . . . . . . . . 19
Making a big picture . . . . . . . . . . . . . . . . . . . . 19
Experimenting with color . . . . . . . . . . . . . . . . . . 20
Other commands . . . . . . . . . . . . . . . . . . . . . . . 21

Appendix I - Generating Fractals . . . . . . . . . . . . . . . . 22
Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
In Practice . . . . . . . . . . . . . . . . . . . . . . . . 23

Appendix II - A Plug for Shareware . . . . . . . . . . . . . . . 25
















(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 3

What Fractal Zoom Does
----------------------

Fractal Zoom allows you to look at two kinds of fractals: Mandel-
brot Sets and Julia Sets. The Mandelbrot Set was discovered by Benoit
B. Mandelbrot at the IBM Research Center in New York. Julia sets are
named after Gaston Julia and are similar to Mandelbrot Sets. Both
sets are located in the complex plane and are full of quite inter-
esting and beautiful images. This is what A. K. Dewdney has to say
about the Mandelbrot Set:

With the aid of a relatively simple program a computer
can be converted into a kind of microscope for viewing the
boundary of the Mandelbrot Set. In principle one can zoom
in for a closer look at any part of the set at any magnifi-
cation. From a distant vantage the set resembles a squat,
wart-covered figure eight lying on its side. The inside of
the figure is ominously black. Surrounding it is a halo
colored electric white, which gives away to deep blues and
blacks in the outer reaches of the plane.
Approaching the Mandelbrot Set, one finds that each
wart is a tiny figure shaped much like the parent set.
Zooming in for a closer look at one of the tiny figures,
however, opens up an entirely different pattern: a riot of
organic-looking tendrils and curlicues sweeps out in whorls
and rows. Magnifying a curlicue reveals yet another scene:
it is made up of pairs of whorls joined by bridges of
filigree. A magnified bridge turns out to have two curli-
cues sprouting from its center. In the center of this
center, so to speak, is a four way bridge with four more
curlicues, and in the center of these curlicues another
version of the Mandelbrot Set is found.
The magnified version is not quite the same Mandelbrot
Set. As the zoom continues, such objects seem to reappear,
but a closer look always turns up differences. Things go on
this way forever, infinitely various and frighteningly
lovely.

Don't worry, you don't have to understand how the pictures are genera-
ted in order to create and appreciate them. However, the functions of
some commands are more easily understood if you know more about the
process. Appendix I describes how the pictures are made and helps to
explain what some of the picture generating commands are all about.








(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 4

Equipment Needed
----------------

Fractal Zoom supports the Color Graphics Adapter and the Enhanced
Graphics Adapter. For EGA users: the program should work with any
available monitor (Enhanced Color Monitor, the regular Color Monitor,
or the Monochrome Monitor). Since I did not have access to all of
this equipment, I can't be sure that it will work with them all, but
let's hope so. If it doesn't, please let me know.
Since Fractal Zoom uses a lot of math, an 8087 Math Coprocessor
option is available. If you have the 8087, then you should use the
8087 version. It is at least TEN times faster than the regular ver-
sion. It uses specially optimized 8087 code to accomplish this. For
you non-8087 people: don't feel left out, the regular version uses
optimized assembly language routines to make it up to THREE times
faster than the compiler floating point routines.



Getting Started
---------------

To start the program, simply type in either FRACTAL or FRACTL87
at the DOS prompt. FRACTL87 first checks to make sure that an 8087 is
installed; if not, then it tells you it needs an 8087 and then stops.
If an 8087 is installed, it continues on, acting just like FRACTAL
(except it is LOTS faster!). Fractal Zoom automatically determines
the type of adapter and monitor you have attached, and adjusts itself
accordingly. It then loads two files from the disk: FRACTAL.PIC and
either CGA.PAL or EGA.PAL. FRACTAL.PIC is a picture file containing
the initial Mandelbrot Set. If it is not there, the program will
generate a small one to start with. You can make your own later if
you like. This is covered under the [S]ave command. The other file
loaded is either CGA.PAL or EGA.PAL. As you might guess from their
names, CGA.PAL is loaded if you have a Color Graphics Adapter, and
EGA.PAL is loaded if you have an Enhanced Graphics Adapter. These are
palette files. If they are not there, then Fractal Zoom will use a
default palette. The palettes are discussed under the [P]alette
command.












(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 5

A Note About Notation, [Y/n], and [y/N]
---------------------------------------

Throughout the text, you will see words and letters surrounded by
[brackets]. This is my way of telling you exactly what key to press.
Anything in a bracket represents a single keystroke. For example,
when you see [L]oad, I am telling you to press 'L' to load. [Control
Page Up] means to press the Control key, hold it down, and then press
the Page Up key.
At times throughout Fractal Zoom, you will be asked Yes/No ques-
tions. These look like a question followed by a [Y/n] or [y/N] pair.
The capitalized letter is the default answer. The capital [Y] means
pressing any key besides [N] or [n] is the same as pressing [Y].
Likewise, the capital [N] means pressing any key besides [Y] or [y] is
the same as pressing [N]. Also, don't worry about whether or not the
letter you press is uppercase or lowercase; it's all the same.



How To Operate Fractal Zoom -- A First Look
-------------------------------------------

The general operation of Fractal Zoom is really quite easy. When
Fractal Zoom starts, you see the title screen, and then after pressing
any key, the Mandelbrot Set picture appears. Located in the middle of
the screen is a small cursor-like object called the BOX. You use the
cursor keys to move the BOX around, and the plus and minus keys to
make it get larger and smaller (I suggest using the grey +/- keys just
to the right of the keypad). See the Cursor Command instructions
listed below to see how to move around quickly and easily. Once you
have centered the BOX around an area you want to expand (or "blow
up"), press Function Key 1 [F1]. This starts the calculation of the
new picture. You get a status report that describes how far along you
are. Once the calculation is finished, the new picture will be drawn.
You can save the picture on disk if you like. If you see an area you
want to blow up, just move the BOX over it and press [F1] again. That
covers operation in Mandelbrot Mode.
Operation in Julia Mode is the same. The main difference between
the two modes is that the pictures you get are different. To switch
from Mandelbrot Mode to Julia Mode, you need to [L]oad a Julia picture
with the [L]oad a picture command. To switch back again, you need to
load a Mandelbrot picture.
This will get you started. The section "How to Operate Fractal
Zoom -- A Second Look", is a demonstration/example of all the commands
and how they work together.






(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 6

Quitting Fractal Zoom
---------------------

To exit Fractal Zoom, simply press [Escape] from the picture
screen, and answer [Y] (yes) to the question: "Quit? [y/N]: ". If you
aren't at the picture screen, press [Escape] until you are.



Cursor Commands
---------------

The cursor keys work in two modes: Cursor Mode and Scroll Mode.
Cursor Mode is used to move the BOX around the screen. Scroll Mode is
used to move the picture around the screen. It can be used when the
picture in memory is too big for all of it to fit on the screen. It
allows you to see different parts of the picture on the screen, as if
the screen were actually a window looking onto the picture. In
summary: Cursor Mode moves the BOX; Scroll Mode moves the picture.
The cursor keys and their functions are:

[Home].................. Move to the upper left corner
[End]................... Move to the lower left corner
[Page Up]............... Move to upper right corner
[Page Down]............. Move to lower right corner
[Cursor Left]........... Move 1 pixel left
[Cursor Right].......... Move 1 pixel right
[Cursor Up]............. Move 1 pixel up
[Cursor Down]........... Move 1 pixel down
[Control Cursor Left]... Move 10 pixels left
[Control Cursor Right].. Move 10 pixels right
[Control Page Up]....... Move 10 pixels up
[Control Page Down]..... Move 10 pixels down


















(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 7

Miscellaneous Commands
----------------------

[F1]

This begins the calculation of the area within the BOX. During
the calculation, Fractal Zoom displays a status screen. The status
screen shows the current row that it is working on, the total number
of rows that it has to do, a bar graph indicating the percentage of
the picture that has been calculated, and the amount of time the
calculation has taken so far. (The bar graph is most useful when you
have moved away from the computer because it lets you see from a
distance how much calculating is left.)
While it is calculating, you may press [Escape] to interrupt it.
When it finishes the row it is working on, it will ask you if you want
to stop. Press [Y]es to stop. Otherwise, press any other key and it
will continue calculating where it left off. If you answered [Y]es,
it will then ask you if you want to keep the picture that has been
calculated so far. If you again answer [Y]es, then the incomplete
picture will be drawn on the screen. This feature lets you interrupt
and [S]ave to disk a picture that is taking a long time to calculate.
Later, you can [L]oad the picture back into memory and [C]ontinue
calculating right where you left off.
When the calculation is done the picture is then drawn on the
screen.



[Escape]

You can press [Escape] at almost any time to exit the current
function and go back to the screen you came from. For instance, if
you are entering a file name and press [Escape], you go back to the
picture screen. If you are entering a number such as the [I]teration
count value and press [Escape], you go back to the picture screen, and
the [I]teration count value remains unchanged.



[Scroll Lock]
This bechanges between Cursor Mode and Scroll Mode. Press it once
to change into Scroll Mode. is becauses the BOX to disappear, and an
ascending tone sounds confirming the change. Now you can scroll the
picture around the screen. Press it again to change back into Cursor
Mode. is becauses the BOX to reappear on the screen and a descending
tone sounds confirming the change. Now you can move the BOX around
again.



(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 8

[1-10]

These are the keys "1234567890" across the top of the keyboard.
"1" equals one and "0" equals ten. In Cursor Mode, press one of these
keys to set how much the BOX will change size when [+] or [-] is
pressed. In Scroll Mode, press one of these keys to set how much the
picture will move when you press the keys [Cursor Left], [Cursor
Right], [Cursor Up], and [Cursor Down].



[+][-]

Use the grey plus and minus keys to make the BOX get bigger or
smaller (you can use the other plus/minus keys at the top of the
keyboard, it's just not as easy that way). The number keys [1-10]
determine how much bigger or smaller the BOX gets with each key press.



Letter Commands
---------------

[A] - toggle [A]larm on/off
This beis useful when you are creating a picture that takes a long
time to calculate. Press [A]larm, and an ascending tone sounds con-
firming that the alarm is now on. When the alarm is on and Fractal
Zoom finishes calculating a picture, a tune is played over and over to
alert you that the picture is done.This beis useful when you go away
from the computer while the picture is being calculated. Press any
key to stop the tune and begin drawing the new picture. To turn the
alarm off, press [A]larm again. A descending tone then sounds con-
firming that the alarm is now off.



[C] - [C]ontinue calculating
This belets you continue calculating a partially finished picture
that you previously saved. For instance, suppose you start calcu-
lating a picture, but it is taking too long and you need to turn off
the computer, or use it for something else. You don't have to lose
all the time you have invested in the picture. All you have to do is
interrupt the calculation, and tell Fractal Zoom [Y]es you want to
stop calculating, followed by [Y]es you want to keep the picture as it
is so far. Then [S]ave it to disk and exit Fractal Zoom. Later,
reload Fractal Zoom and [L]oad the picture. Then press [C]ontinue to
continue calculating the picture right where you left off!


(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 9

[D] - [D]irectory of files on disk
This bewill show you a file directory similar to the one you get
from DOS. First you will be given the prompt "Directory mask: ".
Pressing [Enter] will cause all files and directories on the default
drive and path to be shown. Instead of pressing [Enter], you can
enter an optional drive and/or path to look at. Wildcard names for
files are also supported; an asterisk (*) stands for any word; a
question mark (?) stands for any letter. Thus, to find all files on
drive C:, directory \GRAPHICS\FRACTAL\PICTURES that have P as the
first letter of the extension, your response would look like:

Directory mask: C:\GRAPHICS\FRACTAL\PICTURES\*.P??

All matching filenames and directories will be shown (with directories
shown in highlighted color), followed by the amount of free disk
space. When the screen is full, you will be asked to press any key to
continue; that way nothing will scroll off before you want it too.
You can press [Escape] to stop the directory listing before it is
finished.



[E] - [E]rase a file
This bedisplays a list of all the files on the default drive and
path that match the file mask. You can either type in the name of the
file to erase, or use the cursor keys to highlight the file you wish
to erase and press [Enter]. You are then asked if you really want to
erase the file. If you answer [Y]es, then the file is erased. See
"change de[F]ault drive" just below for details on setting the default
drive, path and file mask.



[F] - change de[F]ault drive
This beallows you to set the default drive, path, and file mask
used to display file names when you [L]oad a picture, or [E]rase a
file. It works just like the optional "Directory mask: " you get when
you press [D]irectory. Wild cards are supported. For instance, if
you wanted the commands [L]oad and [E]rase to display the files on
drive C:, path \PICTURES that have PIC as the extension, your response
would look like:

New default [drive:][\path][\mask]: C:\PICTURES\*.PIC

The brackets in the above prompt mean that each item in a bracket is
optional. That is, you don't have to enter a drive and a path and a
mask. You may enter any one or two of the three, or none.ThIf you

(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 10

just press [Enter], the default drive and path will remain the same,
and the file mask will become "*.*".



[H] - [H]elp screen
This bedisplays a list of all commands. After pressing a key, you
return to the main picture screen. If the key you pressed is one of
the command keys listed, that command will be carried out.



[I] - maximum number of [I]terations
This becontrols the speed of calculation and "resolution" of the
picture. You enter a number from 1 to 256 that represents the maximum
number of times Fractal Zoom will iterate the algorithm on one pixel
before going on to the next pixel. Every pixel that does not converge
before this point beconsidered to be a part of the Mandelbrot Set.
Thus, the lower the number, the faster the calculation and the lower
the "resolution". It is faster because it doesn't have to count any
higher at pixels that would require more iterations to converge. The
"resolution" is lower because all the pixels that would require more
iterations are grouped together as one color. A higher number would
slow the calculation, but some of the pixels that were grouped
together as one color before would then be different colors.



[L] - [L]oad a picture
This bedisplays a list of all the files on the default drive and
path that match the file mask. You can either type in the name of the
picture to load, or use the cursor keys to highlight the picture you
wish to load and press [Enter]. is beloads and draws that picture.
See "change de[F]ault drive" for details on setting the default drive,
path and file mask.



[M] - [M]anually enter BOX location
This beallows you to specify the coordinates for a picture without
using the BOX. First you are asked if you want to make a Julia
picture or a Mandelbrot picture. If you select a Julia picture then
you are asked to supply the two unique Julia numbers that make up that
set; after that part, the rest of the procedure is the same for both
sets. You then enter the X and Y coordinates for the lower left hand
corner of the picture, followed by the X and Y coordinates of the

(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 11

upper right hand corner. This specifies the area you are going to
calculate in. Before you enter the second Y position, a Y value is
recommended that would scale the picture correctly to your video
screen size. After that, you enter the maximum number of iterations
possible (see "maximum number of [I]terations" for an explanation of
what effects this has), followed by the picture pixel size in the X
and Y directions (see "set picture si[Z]e" for an explanation of what
effects this has). Once again, a Y value is recommended that would
scale the picture correctly to your video screen size. Finally, you
are asked if you want to turn [Q]uickCalc on or off (see "toggle
[Q]uickCalc on/off" for an explanation of what effects this has).
Pressing [Escape] at any time during this whole process exits back to
the picture screen. After you have entered all the information, the
calculation begins.



[N] - [N]ew drawing method
This belets you modify the method used to assign colors to pixels
in a picture. This produces dramatic and striking variations of the
same picture without recalculating it. One drawing method is to
assign each color to a range of count values (the count value is the
number of iterations at a pixel). This is called the range method.
Suppose the minimum count value for a pixel in the picture is 1, and
the maximum count value is 160. Dividing this range by 16 colors
means that the first color would be assigned to pixels with a count
value from 1-10, the second color to count values of 11-20, and so on,
with the sixteenth color assigned to count values of 151-160. This
method has the advantage of showing the distribution of count values
in each range; the more of one color there is, the more counts in that
range.
A drawback to the range method is that it doesn't show some of
the fine detail that occurs within the ranges. In the example above,
we might be interested in pixels with count values ranging from 151-
160. The range method shows th beas all one color.
The second drawing method allows us to specify the interval of
counts that will be the same color. A value of 2 means that every 2
count values would be a different color. The first color would be
assigned to counts of 1-2, the second to counts of 3-4, the sixteenth
to counts of 31-32. When we reach counts of 33-34, it starts over
with the first color again. Th belets us reuse the 16 colors over and
over and we can see more detail which before would appear as one
color.
Another feature of the second drawing method lets us adjust the
number of colors used to draw the picture. A value of 16 means that
all 16 colors will be used. A value of 8 means that only the first 8
colors will be used. A value of 2 means that only the first 2 colors



(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 12

will be used. (Th bemethod should be used on monochrome monitors that
only have two colors). If you specify a value that is not a power of
2 (2,4,8 or 16) the results will not be as uniform, but they can still
be interesting.
To select the range method, answer [Y]es to the prompt "Range
method? [y/N]: ". Pressing any other key selects the second method;
you should then enter the interval, followed by the number of colors.
After a new drawing method has been selected, the picture is redrawn
using that method.



[P] - change [P]alette colors
This belets you blend the colors in the picture from one to the
next in a pleasing order. The 16 colors you use and the order you put
them in represent a palette. With the Enhanced Graphics Adapter (EGA)
you have 64 colors to choose from, so you can select which 16 colors
you want, and the order you want them in. With the Color Graphics
Adapter (CGA) you have only 16 colors to work with, so you can only
adjust the order of these colors.
Since palettes can be saved to disk, the easiest way to change
the palette is to [L]oad a palette (from within the [P]alette menu)
and select the palette you wish to load.
There are several ways you can edit the palette. Use the arrow
keys to move the pointer left or right to point to the color position
you wish to adjust. To change the color, simply type in the new color
number. If it is a single digit number (0-9), type in the number and
press [Enter]. If it is a two digit number, you just type in the two
digits. The color number is shown above each color.
To move a color from one place to another, move the pointer to
the color and press [Enter] to select it. An asterisk (*) will appear
underneath the color to show that it is selected. Then move the
pointer to the place you want the selected color to be, and press
[Enter] again. The selected color is inserted at that place and the
rest of the colors adjusted accordingly. It may sound complicated,
but it's easy to do.
If you want to insert a color between two colors, move the
pointer to the color on the right and press [+]. is bepushes the
colors above and to the right one space right. You can then type in
the new color number. For example, to insert color 12 between colors
10 and 15, move the pointer to color 15, press [+], and then type 12.
If you want to delete a color between two colors, move the
pointer to it and press [-]. is bedeletes the above color and pulls
the colors to the right one space left.
To save the palette, press [S]ave and type in the palette name.
Two names have special significance. When Fractal Zoom first starts,
the palette file CGA.PAL or EGA.PAL is loaded and becomes the default
palette.


(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 13

If you decide you don't like the changes you have made, press
[R]edraw to redraw the palette the way it was before you modified it.
Once you are satisfied with a palette, press [Escape] to go back
to the picture screen. If you have modified the palette, you will be
asked if you want to keep the changes you have made. If you don't
like the changes, then answer [N]o and the palette will revert to the
way it was before modification. Press any other key to keep the new
palette.
If you have changed the palette, then the picture will be re-
drawn. On the CGA th betakes the normal amount of time (about 6
seconds); on the EGA, it takes less than one tenth of a second to
redraw the screen.



[Q] - toggle [Q]uickCalc on/off

Sometimes pictures can take a long time to calculate. Turning
[Q]uickCalc on speeds up the calculation by generating an approx-
imation of the picture that would normally be made. The approximated
picture is 99% the same as the normal picture, but it only takes about
60% as long to calculate it. Thus for faster calculation times, turn
[Q]uickCalc on; for slower calculation times that generate a more
accurate picture (as defined by the fractal algorithms), leave it off.
When you press [Q] to turn [Q]uickCalc on, an ascending tone
sounds. When you press [Q] again to turn [Q]uickCalc off, a descend-
ing tone sounds.



[R] - [R]edisplay the main picture

When Fractal Zoom starts, it loads a picture file called
FRACTAL.PIC; if it can't find this picture it quickly generates a
small one. is bepicture is called the main picture. Since it is the
starting point for generating all the other pictures, you will want to
redisplay it so you can zoom in on different sections. Pressing
[R]edisplay will redraw the main picture.
Usually ts bepicture is kept in memory for quick access. How-
ever, if you have a very large picture in memory, there might not be
enough memory to keep the main picture also. If so, then Fractal Zoom
will try to load the picture from disk again. If you have changed
disks and Fractal Zoom can't find the main picture, it will quickly
calculate one. You can interrupt this calculation by pressing -
[Escape], [Y]es, and then [N]o, which will redisplay the picture that
was last on the screen. Then put in the disk with the main picture on
it, change the de[F]ault drive to the directory containing the main
picture (if necessary), and finally press [R]edisplay again. Fractal
Zoom should then be able to find and display the main picture.


(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 14

[S] - [S]ave a picture
This belets you save a picture. Just type in the name you want to
give it. If that name already exists, you will be asked if you wish
to overwrite the old picture. Press [Y] to save ts bepicture and
erase the old picture. Pressing any other key will abort the save; to
save it you will have to type in a different name. Remember that the
picture name FRACTAL.PIC has special significance since it is the
picture that Fractal Zoom initially loads and displays.



[U] - [U]pdate picture to a higher iteration count
This befeature is similar to [C]ontinue calculating. Suppose that
you set the maximum number of [I]terations to 64 and then made a
picture. Since the maximum number of [I]terations is rather low, the
"resolution" or detail of the picture bealso low. Suppose you
decided you liked the picture and wanted to recalculate it with a
higher maximum number of [I]terations. is be[U]pdate option does just
that.
You enter the new maximum number of [I]terations, and the recalc-
ulation starts. BUT, only the points that were equal to the old
maximum number of [I]terations are recalculated. All the other points
are left the same and not recalculated since their count values would
not change any. Thus ts beoption lets you recalculate only the points
that need it and none extra.
If you have to interrupt this recalculation and then later want
to continue where you left off, select [U]pdate again and enter the
same new maximum [I]teration count. The update will continue where it
left off. You should not select [C]ontinue calculating because that
would recalculate everything that was left instead of only the points
equal to the old maximum number of [I]terations.



[V] - [V]iew misc. information
This beshows you quite a bit if miscellaneous information that
gives you a better idea of what is going on. The top half of the
screen shows the lower left and upper right coordinates of the BOX,
and the length and width of the sides of the BOX. Remember, these BOX
coordinates represent the area that will be calculated when you press
[F1].
The next few lines down show information about the picture
currently in memory: the X and Y pixel dimensions (that were set by
"set picture si[Z]e"); the minimum count value; the maximum count
value; the amount of memory the picture takes up; how long it took to
calculate the picture; and the JuliaX and JuliaY numbers if you are in
Julia Mode.

(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 15

The lines below that show information about the picture that will
be calculated when you press [F1]: the X and Y pixel dimensions (this
starts off the same as the current picture, but can be changed with
"set picture si[Z]e"); the maximum possible count value (this starts
off the same as the current picture, but can be changed with "maximum
number of [I]terations"); the amount of memory the picture will take
up when calculated (it takes up no memory right now since it doesn't
exist yet). The JuliaX and JuliaY numbers for th bepicture (if you
are in Julia Mode) will be the same as the current picture.
Below that on the left, you are also shown the total amount of
memory available for any picture, and the name of the last picture
file loaded. The file name is useful if you are loading a sequence of
pre-saved pictures and forget which one you last loaded.
On the lower right you are shown: whether you are in Scroll or
Cursor Mode; whether the [A]larm and [Q]uickCalc is on or off; whether
you are in Mandlbrot or Julia Mode.




[Z] - set picture si[Z]e

The picture size specifies how big the picture begoing to be; it
is the actual number of pixels in the picture to be calculated. The
picture size is not limited by the size of your monitor; if the
picture size is too big to fit on your monitor, only part of the
picture will be shown. Then you can switch to Scroll Mode with
[Scroll Lock] and use the cursor keys to scroll the picture around the
screen to see the rest of it.






















(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 16

The only thing that limits the picture size is the amount of
memory your computer has. If the size you specify is too big to fit
in memory, you will be shown how much memory the values you entered
would take up, and the amount of memory your computer actually has
available for pictures. Then you can enter some smaller values.
For example, if you want the picture to be 700 pixels across, and
500 pixels down, then press [Z], 700, and then 500. Pressing [Escape]
at any time exits back to the picture screen without changing the
picture size.










































(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 17

Summary of Commands
-------------------

Cursor Commands

[Home].................. Move to the upper left corner
[End]................... Move to the lower left corner
[Page Up]............... Move to upper right corner
[Page Down]............. Move to lower right corner
[Cursor Left]........... Move 1 pixel left
[Cursor Right].......... Move 1 pixel right
[Cursor Up]............. Move 1 pixel up
[Cursor Down]........... Move 1 pixel down
[Control Cursor Left]... Move 10 pixels left
[Control Cursor Right].. Move 10 pixels right
[Control Page Up]....... Move 10 pixels up
[Control Page Down]..... Move 10 pixels down



Miscellaneous Commands

[F1].......... Begin calculation of the picture inside the box
[Escape]...... Exit from current function
[Scroll Lock]. Switch between Cursor Mode and Scroll Mode
[1-10]........ Cursor Mode: BOX size change
Scroll Mode: scroll amount
[+][-]........ Make BOX bigger/smaller



Letter Commands

[A] - toggle [A]larm on/off
[C] - [C]ontinue calculating
[D] - [D]irectory of files on disk
[E] - [E]rase a file
[F] - change de[F]ault drive
[H] - [H]elp screen
[I] - maximum number of [I]terations
[L] - [L]oad a picture
[M] - [M]anually enter BOX location
[N] - [N]ew drawing method
[P] - change [P]alette colors
[Q] - toggle [Q]uickCalc on/off
[R] - [R]edisplay the main picture
[S] - [S]ave a picture
[U] - [U]pdate picture to a higher iteration count
[V] - [V]iew misc. information
[Z] - set picture si[Z]e

(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 18

How to Operate Fractal Zoom -- A Second Look
--------------------------------------------
This besection illustrates a sample session with Fractal Zoom that
shows you how the commands work in practice, and how they relate to
each other. To make the best use of th besection you should read it
through first, then follow it a step at a time as you use the program.
To get started, load the program and read the opening screen. After
that, press any key and the main Mandelbrot Set picture will be
displayed. You can either use th bepicture or use another picture on
the disk. To use a different picture, press [L]oad and either point
to the file and press [Enter] or type in the name.



Strategy

The BOX should appear as a small rectangle in the center of the
picture. The general strategy is to move the BOX onto an area that
looks interesting and then "blow up" that area to get a better look.
The most interesting areas to blow up are usually found at the boun-
dary of the Mandelbrot Set. This boundary is simply the region where
the large black region meets the colored region. However, since you
aren't sure what this area will look like, you don't want to invest a
lot of time calculating a picture that isn't interesting. Thus, you
usually make a SMALL picture QUICKLY to see what is there. If it
looks promising, you can change the picture si[Z]e to something bigger
that takes longer to calculate and do it again.



Selecting an area to magnify

The first thing to do is to select the area to enlarge. Press
[0] to set the BOX size change to 10, then press [+] a few times to
enlarge the BOX. Press any number [1-10] and [+] or [-] until it is a
size you like. Use the cursor keys to move the BOX around and place
it over a site that looks interesting: somewhere at the left of the
picture, for instance. Press [V]iew to see where the BOX is located
on the complex plane.ThIf instead of using the cursor keys to move the
BOX, you had entered the BOX location [M]anually, the numbers you
would use are the (X,Y) positions at the lower left and upper right
corners of the BOX.








(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 19

Factors for quick calculation

Now that you have selected the area to enlarge, you need to tell
Fractal Zoom to calculate a small picture quickly. Change the size of
the picture generated by pressing si[Z]e and typing 80 and 40. This
means that the calculated picture will be 80 pixels across and 40
down. The main picture comes back on and the BOX shape reflects the
relative size that you just entered. If you had entered 80 and 80
instead, the BOX would be square. Entering 100 and 1 would cause the
BOX to be very wide and very short. That takes care of the "small

picture" part; now for the "quick" part. There are three ways to
speed up calculations. You have already used one of them: making the
picture small means that there is not as much to calculate. The
second way is to set the maximum number of [I]terations to a small
number: say, 32. Finally, the third way to speed up calculations is
to turn [Q]uickCalc on. is becauses an approximation to be generated,
but you want an estimate as fast as possible.



Calculating, and features for big pictures

You are now ready to calculate the picture. However, since this
picture bea small one, you aren't using some of the features that
make calculating a large picture easier. In order to illustrate the
use of these features, "pretend" this bea large picture instead of a
small one. You would then turn on the [A]larm to alert you when the
picture bedone.Thisen press [F1] to start the calculation and you
will see the calculation status display. It should finish in a short
time: 30 seconds to 3 minutes depending on what part of the picture
you are calculating and whether you are using FRACTL87 or not. Once
again though, if this were a large picture it might take longer than
you would like for it to be calculated. Press [Escape] and then [Y]
twice to stop the calculation and keep the current picture. The
partial picture will then be displayed and you are back at the picture
screen. You could [S]ave it and exit the program, then [L]oad it
again later. Skipping that part (since this IS just a demo), press
[C]ontinue calculating and the calculation resumes right where it left
off. When it bedone, the new picture bedisplayed. To save the
picture, press [S]ave and type the name you want to give it.



Making a big picture

If you decide you like th bepicture and want to make it larger,
just use the change si[Z]e command and make the dimensions bigger in
each direction by the same factor (that is, multiply both original
dimensions by a number greater than one).Thisen press [Home] to move
the BOX to the upper left corner, press [0] to make the BOX grow fast,

(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 20

and press [+] until the BOX covers the whole picture. To make the
picture more accurate, increase the maximum number of [I]terations and
turn [Q]uickCalc off (although [Q]uickCalc is usually very accurate).
Experimentation will show what values you like best.Thisen press [F1]
to calculate the new picture. If you like the result, then [S]ave it.

You can repeat this process of enlarging as long as you like.
Enlarge part of a picture; look at it; enlarge part of that picture;
and so on. If the picture you created is larger than your screen,
then press [Scroll Lock] to change from Cursor Mode to Scroll Mode.
You then use the cursor keys to scroll the screen around. Use the
numbers [1-10] to set the amount scrolled at one time. When you see
an area you want to enlarge, press [Scroll Lock] again to go back into
Cursor Mode, and move the BOX onto that area.
If you made a large picture but the maximum number of
[I]terations is rather low, you can use the [U]pdate command to
recalculate it with a higher maximum [I]teration count for better
resolution.



Experimenting with color

Once you have a picture, you can experiment with the color
scheme.This beis one of the more powerful features of Fractal Zoom.
You can get many strikingly different pictures from one calculation.
There are two ways to do this. One way is to change the palette
colors. Press [P] to go to the palette menu where you are presented
with a color bar that represents the current palette and a menu of
options. You can rearrange the colors to create different patterns.
If you make one that you want to keep, you can [S]ave it at this menu.
(There is a lot you can do here, so read the description of the
"change [P]alette colors" command for complete information on all of
the options). The second way of changing the color scheme is to
select a [N]ew drawing method. Press [N], and then [Y]es to select
the range method. The screen will be redrawn to show the change. To
select the second drawing method press [N] twice (once for [N]ew
drawing method, once for [N]o to the range method), then enter the
interval and the number of colors: say, 1 and 16. (See the descrip-
tion of "[N]ew drawing method" for complete information about what
these values represent.) These two commands can be used to create
some very interesting displays.









(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 21

Other commands

You have now covered all of the important commands for generating
pictures. The rest of the commands are more for ease of use. For
instance, since you often start enlarging from the main picture, you
can use the command "[R]edisplay the main picture" to do so quickly.
Pressing [D] gives you a [D]irectory of files similar to the DOS
display. You can [E]rase files by pressing [E] and pointing to the
file (or typing its name). Pressing [F]elets you change the de[F]ault
drive and directory. is becommand also lets you set up a file mask to
cause [L]oad and [E]rase to only show certain files. Finally, the
last command be[H]elp, which shows a list of all the commands. At
the [H]elp menu, pressing one of the command keys causes that command
to be executed; pressing any other key brings you back to the picture
screen.




































(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 22

Appendix I - Generating Fractals
--------------------------------

Theory

First I will discuss the Mandelbrot Set and then tie in the Juila
Set. The Mandelbrot Set is located on the complex plane.ThThe complex
plane can be thought of as a plane where each point beidentified by
its X and Y position. For example, a point 7 units right of the
vertical axis and 4 units above the horizontal axis could be specified
by (7, 4). As a complex number, you would write (7, 4) as 7 + 4i.
The first number represents the X position (called the real part), the
second number represents the Y position (called the imaginary part).
In general, a complex number Ceconsists of a real part X and an
imaginary part Y, and is written as Ce= Cx + Cyi.

Now to describe the process that generates the Mandelbrot Set.
Begin with the algebraic expression Z^2 + C (read "Z squared plus C")
where Z and C are both complex numbers. Set Z equal to 0 and set C
equal to any complex number Cx + Cyi. The square of Z is still 0 and
the result of adding C to Z^2 is just C. Now substitute this result
for Z in the expression Z^2 + C. The new sum is C^2 + C. Again
substitute for Z. The next sum is (C^2 + C)^2 + C. Continue this
process, always making the output of the last step the input of the
first step; symbolically, th beis written as Z <-- Z^2 + C.

Strange things happen when the iteration becarried out for a
particular C. For example, here is what happens when Ce= 1 + 1i:

first iteration: 1 + 3i
second iteration: -7 + 7i
third iteration: 1 - 97i

Note that the real and imaginary parts may grow, shrink, or change
sign. If the iteration continues, the resulting complex numbers can
get progressively larger.

The size of the complex numbers generated bealso important. The
size of a complex number is simply its distance from the origin (0 +
0i). Thus, the size of the complex number Ce= Cx + Cyi is just the
hypotenuse of the right triangle whose sides are Cx and Cy long:

size(C)e= square root(Cx^2 + Cy^2)

For example, the size of the complex number 7 + 4i is the square root
of 7^2 + 4^2 or about 8.062. Once Z reaches a certain size in the
iterative process (Z <-- Z^2 + C), it then grows very quickly and soon
approaches infinity.



(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 23

In summary, if every point corresponds to some complex number C,
then the Mandelbrot Set consists of the set of all complex numbers C
for which the size of Z is finite after an indefinitely large number
of iterations. If at some stage Z reaches a size of 2 or greater the
iterations will eventually drive the size of Z to infinity. Thus if
the size of Z is still less than 2 after an arbitrary number of
iterations, it bepart of the Mandelbrot Set.

Now for the Julia Set. The algorithm is basically the same; the
same equation beused: Z <-- Z^2 + C. However, the meaning of the
symbols Z and C change some now. Before, we initially set Z to zero
and C was a constant equal to the point Cx and Cy at which the algor-
ithm is evaluated. Thus, as the calculation moves from pixel to
pixel, C changes and Z always starts off at zero.

When calculating Julia Sets, the complex number Z represents all
points on the complex plane and the complex number Ceis just a con-
stant that stays the same for the whole picture. Thus, now we ini-
tially set Z equal to the point Zx and Zy at which the algorithm is
evaluated and C remains a constant. As the calculation moves from
pixel to pixel, C remains the same and the initial value of Z changes.

Much of the information above appeared in Scientific American,
August, 1985 in the Computer Recreations column written by A. K.
Dewdney.



In Practice

To generate a picture, a rectangular region of the complex plane
is selected and divided up into discrete points. Each point Ce= Cx +
Cyi represents a point (Cx,Cy) on the computer screen. The iteration
is then performed on each point (Cx,Cy). The iteration of a point b
halted when one of two things happens: (1) The size of Z reaches 2 or
greater; (2) The number of iterations exceeds a preset limit. When
the iteration for a point behalted, the number of iterations that
occurred at that point (the count value) is recorded, and the program
moves on to the next point. In Fractal Zoom, the preset limit of
iterations is set by the command "maximum number of [I]terations".
Thus, a higher limit will allow more 'time' for the size of a point to
reach 2 or greater.

When all the points have been iterated, a color is assigned to
each point based on the count values that were recorded.ThThe command
"[N]ew drawing method" allows you to determines how the colors are
assigned to the count values; it changes the way the count values are
interpreted and displayed graphically, it doesn't recalculate them.



(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 24

In Fractal Zoom, there are two ways to specify the rectangular
region of the complex plane to examine. One way is to use the cursor
keys to move the BOX around.ThThe other way is to use the command
"[M]anually enter BOX location".

The command "set picture si[Z]e" determines the number of dis-
crete points that the rectangular region bedivided into.ThThe larger
the si[Z]e, the greater the 'magnification' of that region.

The command "toggle [Q]uickCalc on/off" allows an approximation
to the Mandelbrot Set to be generated quickly. The [Q]uickCalc
approximation method involves iterating every other point in the
rectangular region first. (Th beis analogous to examining all the
black squares on a chess board first.) Once that is done, the program
goes back to examine the points not yet iterated. (Analogous to all
the red squares). Each point not yet iterated is surrounded by four
points that have been iterated (above, below, left, and right). If
the count values for the surrounding points are all equal, then that
same count value is assigned to the center point. Otherwise the
center point beiterated as before and the count value recorded.

The [Q]uickCalc method significantly reduces the time needed to
calculate the second half of the picture since many of the time
intensive iterations are not performed. Furthermore, empirical tests
done to compare th bemethod to the original method show that this
method is a fairly good approximation.

When you are in Julia Mode the pictures have a JuliaX and a
JuliaY number. These numbers correspond to the complex number Cethat
every Julia Set has.





















(c) Copyright 01-17-1989 by Roger W. Clapp III












Version 2.00b Fractal Zoom Page 25

Appendix II - A Plug for Shareware
----------------------------------
ThI have worked many, many hours on this program and documentation
in an attempt to make it easy and intuitive to use. While I origin-
ally wrote this program for my own purposes, as it formed and I saw
the incredible pictures, I came to think that other people would be
interested in it. In this light, I am distributing the programs
FRACTAL.COM, FRACTL87.COM, the documentation file FRACTAL.DOC, and
assorted support files.

If you enjoy using this program,ea small contribution bereq-
uested. $20.00 is suggested; any amount would be appreciated. For
contributions of $20.00 or more, I will send you a disk containing all
the source code for th beprogram,eplus several pictures. I ask that
no modifications of the program or documentation be distributed. I
include the source code for people who are interested in how the
program works, and for people who may wish to modify it for their own
needs. The program is written in Turbo Pascal 3.01, with several of
the calculation routines and graphics routines written in assembly
language.

Finally, I hope you enjoy this program and the pictures and find
them as interesting as I do.


Roger W. Clapp
January 17, 1989























(c) Copyright 01-17-1989 by Roger W. Clapp III