home *** CD-ROM | disk | FTP | other *** search
-
- "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)
-