Fractal Factory
(0.90 Beta)
Content
Introduction
Instructions
Menu Options
Known Bugs
Things To Do/Fix
History
Benoit Mandelbrot
The Mathematics Of The
Mandelbrot Set Explained
About The Author
Introduction
Fractal Factory is a fast, fun and
exciting way to explore the Mandelbrot Set of fractals. This document
contains instructions and everything else you could ever want to know.
Maybe.
This is version 0.90 beta - a very
rough draft of a first release. There are many strange quirks and
a few missing features. Please bear with me and offer helpful suggestions.
If you find anything at all wrong please let me know.
Instructions
To zoom in on a section of the fractal simply click, hold,
and drag a rectangle around the desired area. To abort a zoom once
you have already started dragging a rectangle, drag the mouse off the fractal
image and release the mouse button.
Someday soon you will be able to save you images
or locations of them, but those features do not yet work. Sorry,
I'm kind of busy with this graduate-from-school thing.
You can find many other options on the menu bar.
Click around, it should hopefully be straightforward enough that anyone
can figure it out.
Menu Options
File
-
Save As Bitmap
Disabled. Allows the current fractal image to be saved as a bitmap.
-
Set As Wallpaper
Disabled. Sets the current fractal image to the background "wallpaper."
-
Save Coordinates
Disabled. Saves the coordinates of the current fractal.
-
Load Coordinates
Disabled. Allows default and user fractal coordinates to be loaded
and the corresponding fractal to be generated.
-
Exit
Terminates Fractal Factory.
Window
-
Stop Drawing
Stops the generation of the fractal image, and eventually the repainting
of the window.
-
Repaint Window
Repaints the previously generated fractal image with the current color
scheme. Color scheme is described under "Options." "Repainting" is mearly
updating the screen from the image already generated and stored in memory.
-
Redraw Fractal
Generates fractal image using current coordinates and color scheme.
"Drawing" is the generation of the fractal, which requires intense mathematical
processing.
-
Resize Window
Allows text entry of window size for generation of fractals of specific
size. Excellent for wallpaper, once that option is available...
-
Draw Spectrum
Displays the current color spectrum in a separate window. Spectrum
is described under "Options."
View
-
Undo
-
Restart
Resets fractal to start-up values.
-
Zoom In 300%
Zooms in on the center 1/3 * 1/3 of the fractal.
-
Zoom Out 300%
Zoom out 300% from the center of the fractal.
Options
-
Color Schemes
Choose the color scheme from the sub menu. A color scheme consists
of a spectrum of colors that may be viewed in a window. (see "Window")
-
Interlaced 2x2 or 4x4
Interlacing under samples the fractal and makes a blocky image by enlarging
the pixels it does sample. Interlaced 4x4 samples 1 of the 16 pixels in
a 4x4 block and then makes a 4x4 square using that color. Thus, it runs
16 times faster but produced a course image. The fractal is then generated
normally after the interlacing procedure runs. None of the previously sampled
points are re-used, therefore interlacing only delays the full generation
of a fractal. However, impatient people like to see results quickly, so
4x4 interlacing is default.
Stop!
Clicking this stops the generation of a fractal. Eventually, this will
also stop the repainting of the window.
Help
-
Instructions
This file -- ReadMe.HTML.
-
About
Tiny little credit window.
Known Bugs
Bug
"Stop!" and "Stop Drawing" do not stop a window from repainting.
Cause
I haven't given the repaint procedure its own thread yet. (It's not
multitasking)
Bug
Clicking the menu bar twice during the generation of a fractal causes
the menu bar to freeze until the fractal is done drawing.
Cause
Unknown. This shouldn't happen. I assume it has something to do with
Delphi that I haven't learned yet.
Bug
Mouse cursor doesn't change from pointer to hourglass or vice versa
until it is moved.
Cause
This shouldn't happen either. I blame it on Delphi. Suggestions?
Bug
Lots of problems with the window not repainting or erasing chunks if
the window is moved while a fractal image is generating.
Cause
I currently draw the fractal directly to the "canvas" of the window.
Once I figure out how to draw to a bitmap and place the bitmap on the canvas
this problem will go away, and saving the bitmap will be cake.
If anyone out there knows how to do this, please send examples.
It seemed easy at first, but I can't do it. I found examples in SWAG,
but as is typical, they didn't work and had no helpful comments.
Please help.
Bug
FF is slow in and around the black areas of the fractal..
Cause
The deeper into the Mandelbrot set you zoom, the slower it gets.
This is because each color deeper is one repetition of a loop more than
the last, up to a cutoff of 250 or 271, depending on the color scheme chosen.
250 is generally recommended as a good cutoff, but in the future I will
allow smaller cutoffs to be selected, thus speeding generation.
Things To Do/Fix
-
Save and load fractal coordinates, perhaps to a database
-
Make the fractal draw to a bitmap and allow saving of that bitmap
-
Make repaint into a thread, assuming this doesn't happen automatically
with a bitmap fractal image
-
Fix mouse pointer bug
-
Write Mandlebrot stuff
-
Figure out what causes access errors.
History
Version 0.01
-
Fractal Factory begins its life as a Turbo Pascal 16-bit DOS program using
VESA and x-mode graphics with mouse support that worked but didn't do anything
useful.
-
The fractal math has been optimized as best as I see possible and the program
runs faster than any I've seen.
-
Zoom depth is an impressive 80-bits - the deepest possible without using
objects for variables, which are slower.
Version 0.90
-
FF makes a quick conversion to Delphi where features have been piling on
faster than I can make them work.
-
Changing the priority of the drawing thread caused bugs so its priority
remains normal.
-
A readme.txt was written but changed to the more convenient html format
after a suggestion by Kelly Berg.
-
A quick browser form was made to view the readme but the lack of "back"
button could cause trouble...
-
Lots of features need to be enabled, lots of bugs need fixing.
-
Finish this readme
Benoit Mandelbrot
The Mandelbrot set is named after the
man who discovered it and invented the word "fractal." The following
is paraphrased or quoted from pages 83 to 98 of CHAOS by James Gleick.
Benoit Mandelbrot, born in Warsaw in 1924 to a Lithuanian
Jewish family, fled from the Nazis to Paris in 1936 where his uncle, a
mathematician, lived. His family was forced to flee again during
WW2, this time to Tulle where Benoit was befriended by scholars and school
teachers. He claimed never to have learned the alphabet or multiplication
tables past five, but he had a gift.
When Paris was liberated he took the month-long oral
and written admissions examination for Ecole Normale and Ecole Polytechnique,
despite his lack of preparation. He proved to have natural talent
in art and geometry which. He found that he could transform almost
any analytical problem into a geometrical problem and then find the solution.
He did poorly in physics and chemistry, but did well in mathematics.
Mandelbrot was accepted and began in Normale, the
smaller and more prestigious of the two, but left within days for Polytechnique.
Mandelbrot left because mathematics at Normale was controlled by a secret
group of 50 mathematicians called Bourbaki. Bourbaki valued rigor
and abstraction but despised pictures, geometry, practicality or any connection
between math and the physical world. One decade later Mandelbrot
left France for the USA for the same reason. A little later, Bourbaki
would die of a shock brought on by the advent of the computer and its power
to feed a new mathematics of the eye.
Mandelbrot accepted a job at IBM Thomas J. Watson
Research Center where he became, as he said, a nomad-by-choice or a pioneer-by-necessity.
He produced work in mathematical linguistics, game theory, economics, scaling
regularities in the distribution of large and small cities, noise transmission,
the height of floods on the Nile, coastline lengths, and fractional dimensions,
all of which were tied together by a yet unknown science.
In the winter of 1975 Mandelbrot gave a name to his
shapes, his dimensions, his geometry. He found in his son's latin
book the word fractus, from the verb frangere, to break.
The resonance of the main English cognates -- fracture and fraction --
seemed appropriate. Mandelbrot created the word (noun and adjective,
English and French) fractal.
To be continued...
The
Mathematics Of The Mandelbrot Set Explained
More on this later.
About The Author
Seth Kintigh is currently finishing his senior year
at WPI in Worcester, Massachusetts, USA where he is majoring in Electrical
Engineering, minoring in Computer Science and Physics, has no job offers,
and is writing about himself in the third person.
Please report any unknown bugs or causes to me
at
skintigh@wpi.edu