home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fractal Creations (Second Edition)
/
FRACTALS_2E.iso
/
finstall.exe
/
FDESIGN.DOC
< prev
next >
Wrap
Text File
|
1991-06-16
|
14KB
|
283 lines
"Fractal Designer v3.30 by Doug Nelson May 5, 1991" (submitted to the
public domain) can generate unique fractal designs. The number of IFS
designs is limited only by the amount of time spent using Fdesign. The
designs can be saved to .GIF files or printed on an HP Laserjet or Epson
compatible printer.
Hardware Requirements
o A very-MicroSoft-compatible mouse is required (some clones haven't
worked). Also, an 80x87 coprocessor greatly speeds up the generation
of images. To give you an idea of the coprocessor's speed --- an 8
MHz XT with coprocessor is faster than a 20 MHz 386 without
coprocessor. EGA or VGA graphics are required, but VGA is much better
because the pixel size is square. You'll also need 350k bytes of free
memory when invoking Fdesign (less if you don't use the Virtual Screen
plot).
o Your printer must be able to receive commands for one of these:
HP Laser Jet II P --- the best pictures
Epson 24 pin compatible --- I used an LQ-1000 for testing
Epson 9 pin compatible --- I used an early FX series model
Running the program
o To view a fractal (no mouse required) from the command line:
C> fdesign sierpink
or
C> for %1 in (*.trn) do fdesign %1
to view all .TRN files in the directory
o The mouse is the main input device. Hit the mouse button for the top
menu (without a coprocessor you may have to hold the mouse button down
until the menu appears). For interactive design, type "fdesign"
return and you'll get the Top Menu screen:
- Normal Plot - plots (to the screen) the current fractal in EGA
or VGA 16 colors.
- Edit Transformations screen - allows you to change the
description of the fractal (edit triangle transformations). If
there are at least two transformation triangles, a small fractal
image is displayed in the upper right corner and will change
concurrently with your edits.
* Scratch Everything - cleans the workspace. Then you
specify a reference triangle and input transformation
triangles until your right mouse button ends the input.
* Add a Triangle - you input three points defining an
additional triangle.
* Delete a Triangle - you select a triangle to delete.
* Adjust a Triangle - allows you to move a single vertex of a
triangle. First select a triangle by finding an unambiguous
edge of the triangle and click left. Then click on the
corner you wish to move. Now you may move the cursor to the
new position and click left. The fractal image in the upper
right updates with your edits. You may continue to click
left and watch the fractal change in the upper right corner.
When you're satisfied, click the right mouse button.
* Grat is on/off - clicking on this will toggle the "on/off".
If grat is off, you may place triangle vertices between
dots. If grat is on, the closest graticule will be used to
place the vertex.
* Main Menu - return to plot fractal on the big screen.
- Load file screen - loads a transformation (.TRN) file. You may
click left on a filename to preview the fractal in that file.
When you see the one you want, click right. You will be thrown
into the Edit Transformations Screen. If you want a big screen
image, click on "Main Menu" immediately. I have included several
.TRN files which you may load, display and modify.
- Save file - save the current transformations to a file. Type in
the filename (without extension) that you wish to save the
transformations to. If the filename already exists, you will be
prompted for an ok. Saving to another subdirectory or disk is
not supported.
- Alternate display - plots in 16 colors, but starts with color 1
and increments the color every time a pixel is re-plotted.
- Print - Prints the filename, the current screen, the Edit
Transformations and IFS codes. This is intended as a way to
document your fractals.
- Virtual Screen Print - Use this to create high-res pictures on a
printer.
* Plot 1000000 points - Plots to a virtual screen (1504x1200)
a million points. I've found a million to be adequate for
most images. This number will increase if you have already
zoomed on the image. This number is only a recommendation
by a very dumb algorithm.
* Plot N points - Again, this plots to the virtual screen as
many points as you specify. It occasionally happens that
you may need to plot 20 million points to get a full
picture. You specify the number of points in thousands
(5000 means 5 million).
* Print - prints the virtual screen to your printer on LPT1.
* Return - gets you back to the top menu.
- IFS codes (FRACTINT) - This allows transfering files to/from
Fractint.
* Write a FRACTINT file --- computes IFS codes for FRACTINT's
screen size and writes an ascii file with an extension of
.IFS.
# FRACTINT viewing is accomplished with the following
command line:
FRACTINT type=ifs ifs=myfile.ifs video=F4
You would, of course, replace 'F4' with your own
video mode preference from the help screens.
* Read a FRACTINT file --- computes triangle transformations
from the IFS codes. You may then edit the transformations
as with any Fdesign file. You may then opt to save the
result as a .IFS file (for FRACTINT viewing).
* IFS codes for this screen --- these are a,b,c,d,e,f,p used
to generate the main display. Note that no scaling to the
display is required --- the IFS codes are already scaled for
it.
- Zoom in - Brings up a zoom box. The box may be moved by moving
the mouse. The size of the box may be changed by holding the
left mouse button and moving the mouse up or down. To accept the
zoom box, press both mouse buttons, or type any key. Multiple
zooms are allowed, but the computation time required increases
with every zoom.
- Zoom reset - reset to the original full-sized image.
- Save to .GIF - copies the screen to a .GIF formatted file.
- Quit - returns you to DOS.
Basic Fractal Education
o Not all fractals can be generated by this program. IFS stands for
Iterative Function System, just one method of generating fractals.
The IFS codes define a space which has a "fractional" dimension. This
space has a "shape", the images that this program generates. At least
two IFS codes are required to generate a fractal. Each IFS code is
derived from an affine transformation, which can be described as
mapping one triangle into another (in the same 2D space).
o The triangle transformations: In the edit screen, a reference
triangle is shown, and any number (up to 32) of transformation
triangles are shown. A transformation triangle maps "from" the
reference triangle "to" the transformation triangle itself. These
mappings are called affine transformations, which means they move
points closer together. To enforce the affinity requirement, the A-B
side of the transformation triangle must be shorter than or equal to
the A-B side of the reference triangle (the same is true of the B-C
and A-C sides). However, a transformation triangle may not have all
three sides equal to the reference triangle. The program will display
an error message if you attempt to input a non-Affine transformation
triangle (you can re-define the reference triangle with the "Scratch
Everything" command).
o Random IFS Algorithm
- A beginning point is selected which is on the fractal.
- A transformation triangle (IFS code) is randomly selected.
- The selected transformation is applied to the current point and
the new point is plotted.
- One point out of millions has been plotted.
- Now go back to randomly select a transformation triangle (may or
may not be the same as the transformation just applied).
- That's all there is to it. Amazingly simple isn't it? The
problems are in the user interface.
- A point on the attractor (the fractal) may be thought of as
having a coordinate consisting of the history of IFS code numbers
required to get there.
- Even though the transformations are randomly selected, the
resultant image is the same (by mathematical proof). Given
infinite time, the resultant image has infinite detail, so the
algorithm repeats until you interrupt with a mouse click.
o The references will give you everything you ever wanted to know on
the theoretical basis for these images.
Tips on Building Fractals
o Experiment with only two transformation triangles. There is a lot a
of creativity in some of those two triangle transformations. Then add
a triangle and experiment with various rotations and scalings.
o Start with one of the example files and adjust a corner and watch the
progress.
o When adding a triangle, start with a small triangle and adjust its
corners while watching the fractal in the upper right corner.
o Make the colored regions "just touching" in the small edit plot to
create interesting connections.
o To me, creating fractals seems like a very intuitive process. I've
designed the user interface to facilitate a quick design cycle.
Revisions
o v3.30 - .IFS file format change to be compatibility with Fractint
after rev 15: Some minor user interface changes were made. In-line
assembler if 80287 or better coprocessor is present. The R250
algorithm (see Doctor Dobb's Journal, May 1991) becomes the random
number generator.
o v3.08 - more enhancements: GIF file saving was added. IFS codes
display and FRACTINT interface were added. Zooming support on main
screen and "virtual screen print" was added. Up to 32 triangle
transformations are allowed. A command line option to view .TRN files
was added. Color codes now exclude WHITE, DARKGREY, and BLACK. Two
video "modes" available: 1) normal plot --- this color codes the
triangle transformations (or IFS codes), and 2) alternate display ---
increments the color code every time a pixel is re-plotted (shows
density).
o v2.05 - lots of enhancements: A bug that caused a floating point
domain error has been removed. Three printer types are supported. A
"virtual screen" has been added with 1504x1200 resolution (used only
for printing). File menu now shows a little plot from the filename
you click on. 256 color plotting was added (and subsequently
removed). You may turn off the graticule spacing when adjusting
triangle transformations. Menus have been "cleaned up".
o v1.00 - added the 'small plot' to the Modify screen and the 'adjust
triangle' command.
o v0.01 - the first distributed copy of FDESIGN.
Known Problems
o Sometimes the probabilities are not computed correctly when adding an
Fdesign design to a Fractint .IFS file. Some adjustment of the last
parameter on each line may be necessary for Fractint (this is the
probability setting). However, the total of the last parameters must
add up to 1.0.
o Sometimes an .IFS file design will read in correctly --- however, it
may not display perfectly in the "small plot" mode (as when editing
the triangle transformation). I currently have no fix for this.
o An extremely rare floating point error occurs which I've been unable
to track down.
References
o An excellent reference is "Fractals Everywhere" by Michael Barnsley.
o BYTE magazine, January 1988.
o A good reference is "The Science of Fractal Images" by M.F. Barnsley,
R.L. Devaney, B.B. Mandlebrot, H.-O. Peitgen, D. Saupe, and R.F. Voss
with contributions by Y. Fisher and M. McGuire.
o Thanks to Bert Tyler [73477,433] (CIS) and Lee Daniel Crocker
[73407,2030] (CIS) for their .GIF encoder.
Send comments or suggestions to:
Doug Nelson
3640 Old Denton Rd #2405
Carrollton, TX 75007
Compuserve ID 70431,3374 (my address may change, but not my compuserve ID)