home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Graphics 16,000
/
graphics-16000.iso
/
msdos
/
fractal
/
fract30
/
fract.doc
< prev
next >
Wrap
Text File
|
1989-09-29
|
14KB
|
274 lines
===============================================================================
Mandelbrot/Julia set 2D/3D EGA/VGA Fractal Generator
Written by Tom Collins and Dan Rowley
(C) 1989 by Innovative Computer Solutions
Documentation for FRACT v3.0
===============================================================================
Shareware Notice
-------------------------------------------------------------------------------
This program is shareware. Please play with it for a few days. If you grow
attached to it, register it. If you sell computers/monitors/VGA cards, and
you use my program to show off the capabilities of such devices, I'd like you
to register FRACT. (Think about it this way, you're using my program to make
money. If it impresses someone enough to buy a VGA monitor/card, I think it's
worth it to you to send me a few bucks.)
[See the 'Registration' section at the end of this file for more info]
-------------------------------------------------------------------------------
You should have the following files on your disk:
FRACT.EXE - The actual Fractal Generator.
FRACT.DOC - This documentation.
FRACT.NEW - What's been changed from previous versions.
REGISTER.FRM - Registration form
????????.IMG
????????.DAT - Sample images and data files for use with FRACT
If any of these files are missing, please call one of the boards listed at the
end of this file to get a good copy. When redistributing this program, be sure
to include all of the above files.
-------------------------------------------------------------------------------
How to Use FRACT
-------------------------------------------------------------------------------
Any time the computer is drawing a image, hitting the 'S' key or the left
button on the mouse will save the image. Pressing the escape key or the right
mouse button will abort the image without saving it. If you save an image,
you'll be able to continue drawing it at another time.
Menu items and their associated functions:
Create a 2-D Mandelbrot image
-----------------------------
The program will ask you for the x (real) and y (imaginary) coordinates
corresponding to the center of the image. You will then be prompted for
the side length and the filename to save the image under. Leaving the
filename field blank will cause the image to be drawn without saving.
[Note: The Mandelbrot set is contained within the x coordinates (-2.1 and
+0.7) and the y coordinates (+1.4 and -1.4). You can create an image of
the Mandelbrot set by using the following data: x:-0.7, y:0, side:2.8.]
The image will be drawn with dots separated by progressively smaller
spaces. This should give you some idea of what the image will be like so
you can abort it early if you don't like it.
Create a 3-D Mandelbrot image
-----------------------------
The only difference between the 2-D and 3-D versions of the Mandelbrot
images is the method used to draw the image. The 3-D image is drawn with
diagonal lines starting from the upper right-hand corner.
Create a 2-D Julia image
------------------------
The program will ask you for the x and y coordinates corresponding to a
point on the Mandelbrot Set. This is the point from which the Julia set
will be drawn.
The Julia image will be drawn from both sides, as it is symmetric about
the origin.
Create a 3-D Julia image [registered version only]
--------------------------------------------------
Once again, the only difference between the 2-D and 3-D versions of the
Julia sets is the method used to draw the image. Like the 3-D Mandelbrot,
the 3-D Julia will be drawn with diagonal lines starting from the upper
right-hand corner.
Continue drawing an old image
-----------------------------
A list of available files will be displayed. After choosing a file, the
image will be loaded and the program will pick up from where it left off.
Hitting escape from the list of files will return you to the main menu.
Remove registration notices [registered version only]
-----------------------------------------------------
This option will remove the 'Register Your Software' message from a file
chosen from the file list.
Add extra sets of iterations
----------------------------
This feature is used to improve the quality of some images. Adding extra
iterations redraws black areas of the image, possibly adding more color.
Each set of iterations adds approximately 200 actual iterations to the
computations for each dot [the image starts out with 200 iterations].
Adding iterations will slow down the generation of the image, and it is
advised that you add at most 5 sets. [Note: Adding is cumulative.]
Load and view image
-------------------
You will once again go through the file selection menu. After choosing an
image it will be loaded and displayed on the screen [EGA images take
longer than VGA. VGA images will be faded onto the screen].
While the image is still on the screen the following options are
available:
Pressing 'X' will change to and from an 'X-ray' palette. This
occasionally produces some interesting effects.
Pressing the space bar will cause the palette to rotate giving the
illusion of movement. Pressing the space bar again will stop the
rotation. If you are using a mouse, pressing the left button will
start the palette changing and pressing the right button will stop
it. While holding the left button down, the speed of rotation can be
adjusted by moving the mouse horizontally.
Pressing escape or the 'Q' key will bring you back to the main menu.
Get info on an image
--------------------
This option will display pertinent information on any image you choose.
Zoom in to create a new image
-----------------------------
This option allows you to choose any point on an existing image and
magnify it to create a new image. Choose the point by using the arrow
keys/numeric keypad on the keyboard or the mouse. Clicking the left
mouse button, or pressing 'M' or Enter on the keyboard will create a
Mandelbrot image. Clicking the right mouse button, or pressing 'J' will
create the corresponding Julia Set for that point. When creating a new
Mandelbrot image you will be asked for a magnification factor [Note: 25
is a good factor]. When creating any image, you will also be asked for a
filename to save the image under.
Slide Show of all images [registered version only]
--------------------------------------------------
This option will cycle through all of the images in the current directory,
displaying and rotating the palette for a short period of time before
loading the next image. VGA images will fade in from black, and then fade
back to black after cycling. Press escape to abort the slide show.
Quit
----
Clears the screen and drops to DOS.
-------------------------------------------------------------------------------
History
-------------------------------------------------------------------------------
I've been interested in Fractal Geometry, especially the Mandelbrot Set, ever
since my father tried to write a program from algorithms appearing in the
August 1985 Scientific American Computer Recreations column. When I first saw
the program, it was on my Apple IIe. Written in BASIC, it plotted black and
white dots on the hi-res screen in a square of 100 pixels per side. I
modified the program to use the full screen (280x192) and the 5 colors that
Apple hi-res is limited to. I got bored fast, so I rewrote the program using
some double hi-res routines that reduced the size of the image to 140x140, but
expanded the colors to include 10 of the 16 double hi-res colors available.
Since I had brought my Apple to the limit with color and resolution, I tried a
3D version. It didn't work out very well, and I put the program on hold.
A little while after I had failed at the 3D version, Dan Rowley offered to let
me write some programs using super hi-res on his Apple II GS. I turned out a
program that used the 320x200 mode with a 16 color blue scale. It turned out
great images, but took forever to draw. (The entire Mandelbrot set took over
8 hours, partially because of slow plotting routines.) At about the same
time, my father offered to let me use the new IBM PS/2 at his office. I wrote
the original IBM version on that computer, using Turbo Pascal (probably 3.0).
The program was limited to 4 colors, so I dropped that project.
The programming stopped for the summer, until I arrived at Penn State. I
decided to make another attempt at the 3D program, using Turbo Pascal on a
Macintosh. The outcome wasn't all that bad, considering the fact that it was
drawn in black and white. It did however, establish a system of plotting in
3D.
With renewed interest in the program, I rewrote the double hi-res Apple version
over my Thanksgiving vacation. I had it automatically draw 196 images that,
when put together, formed the entire Mandelbrot set (and took up over 6 and 1/2
megs of hard drive space). I set the program working when I left for school,
and it was just finishing up when I returned 3 weeks later.
During Christmas vacation, I had my friend, Dan Rowley, write some new machine
language routines, for the GS version, to plot the data to the screen. By
that time, I had also refined the program, and it was running much faster than
before. With the new program and the routines, the program drew the entire
Mandelbrot Set in only 3 hours. The only problem was that images couldn't be
saved. Since then Dan has been working on a version written in TML Pascal.
All GSFract related queries should be directed to him. Look for an official
release later this year.
When I returned from my Christmas break, I had the source code to an excellent
program (PLASMA by Bret Mulvey) that included the routines I needed to use VGA
graphics in my program. I rewrote my program in Turbo Pascal (v5.0), to
include the VGA routines. Since then, most of the routines have been changed,
and the code was rewritten twice. I consider this version to be the best so
far. It can compute the entire Mandelbrot Set in approximately 20 minutes (on
a PS/2 model 30-286), uses 320x200 pixels, and a total of 192 different colors.
The image can be saved and reloaded, and the palette can be rotated to produce
interesting effects.
As summer vacation approached, I realized that I would no longer be able to
develop the program on my roommate's PS/2. I quickly added EGA support to the
program, but it was very sloppy. Since then most of the changes to Fract have
been either cosmetic or structural. Attempts were also made to make the
program more user friendly.
-------------------------------------------------------------------------------
About the Authors...
-------------------------------------------------------------------------------
I'm a sophmore majoring in Computer Engineering and Computer Science at Penn
State University's Main campus. I've programmed in BASIC ever since I got my
Apple IIe in 1983, and in Pascal since 1986. I'm currently trying to learn
'C' and taking a class in assembly.
Dan Rowley is a sophmore majoring in Computer Science at Arizona State
University. He's programmed in BASIC ever since he got his Apple ][ back in
1979. He now programs in Pascal, C, and assembly language on his Apple II GS
and IBM AT. Dan has taken over development of the GS version.
-------------------------------------------------------------------------------
About Innovative Computer Solutions...
-------------------------------------------------------------------------------
ICS came about after an internal conflict resulted in Olympic Technologies
being dissolved. ICS currently consists of the two authors of Fract, and we
are committed to making computers more useful. Our services include
consulting, computer installations, custom programming, tutoring, and computer
maintenance.
-------------------------------------------------------------------------------
Registration/Shareware notice
-------------------------------------------------------------------------------
To register the program, send me five dollars and a formated disk (either
5.25" or 3.5") along with your name, address, phone number, and where you can
be reached by computer. The registered version will add all gray menu options.
For an extra twenty dollars, I'll put your company name (limit 25 characters)
in place of the 'Register Your Software' message. If you'd like a version
done for another computer, please tell me, and I'll try to get you a copy of
one. I hope to have a version available for the Apple IIGS, and possibly the
Mac II [as soon as I can find a language that supports the graphics].
The ICS Headquarters is located at: Innovative Computer Solutions
2975 Macungie Road
Emmaus, Pa 18049
ATTN: Tom Collins, Jr.
Tom's school address is: Tom Collins
618 Stuart Hall
University Park, Pa 16802
Dan's school address is: Dan Rowley
950 S. Terrace Rd
Apt. D268
Tempe, AZ 85281
[Note: School addresses good until May 1990]
Bitnet/Internet addresses: Tom - tbc101@psuvm.asu.edu or tbc101@psuvm.bitnet
Dan - audsr@asuacad.asu.edu or audsr@asuacad.bitnet