home *** CD-ROM | disk | FTP | other *** search
-
- Fractal Designer v3.08 by Doug Nelson Jan 24, 1990
-
- Introduction
-
- o - This is a tool that can generate a billion billion unique fractals.
-
- o - The executable program is submitted to the public domain. I would
- appreciate comments on improvements or enhancements.
-
- o - This is not a Mandlebrot set or Julia set fractal program.
-
- o - If you have a supported printer, you can document your fractals and
- print a high-resolution fractal using the "virtual screen" option.
-
- o - Fdesign 3.07 displays differently than Fdesign 2.05.
-
- * The aspect ratio of triangle transformations is preserved (this
- turns out to be mathematically important). The "auto-scaling"
- will cause the attractor to span either the y direction or the x
- direction, not necessarily both. As a result, some of your
- fractals from v2.05 will display differently than before.
-
- o - Fdesign 3.07 .TRN files cannot be read by Fdesign 2.05 or earlier.
- The file format has changed to provide "fractional" pixel locations
- for triangles. However Fdesign 3.07 CAN read files from any earlier
- revision.
-
- Hardware Requirements
-
- o - An 80x87 is a must to make this program fun.
-
- * To give you an idea of coprocessor enhancement:
- an 8 MHz XT w/coprocessor > a 20 MHz 386 w/o coprocessor
-
- o - The program requires either EGA or VGA graphics. VGA is much better
- because the pixel size is square. (Sorry EGA fans, I didn't scale for
- odd-sized pixels).
-
- o - A mouse is a must. In developing this program I used a Microsoft
- mouse, but have found some so-called "compatibles" that do not support
- a screen cursor.
-
- o - It also requires 350k bytes of free memory on an IBM PC-compatible
- computer (less if "Virtual Screen Print" is not used).
-
- o - A 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
-
- Revisions
-
- o - v3.08 - more enhancements:
-
- * A command line option to view .TRN files.
-
- * You may have up to 32 triangle transformations.
-
- * Zooming support on main screen and "virtual screen print".
-
- * GIF file saving.
-
- * IFS codes and FRACTINT interface
-
- * Color codes exclude WHITE, DARKGREY, and BLACK.
-
- * Two video "modes" available:
-
- # Normal plot --- color codes the triangle transformations
- (or IFS codes).
-
- # Alternate display --- increments the color code every time
- a pixel is 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 added.
-
- * 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.
-
- Basic Fractal Education
-
- o - Not all fractals can be generated by this program.
-
- o - IFS stands for Iterative Function System, just one method of
- generating fractals.
-
- o - The IFS fractals define a space which has a "fractional" dimension.
- This space has a "shape" defined by the IFS codes.
-
- o - Each IFS code is derived from a "transformation". At least two
- transformations are required to generate a fractal.
-
- o - The triangle transformations.
-
- * (The following may not be strictly correct)
-
- * IFS codes are derived from Affine transformations. A
- transformation triangle maps "from" the reference triangle "to"
- the transformation triangle itself.
-
- * An Affine transformation moves points closer together. In
- general, a transformation triangle must be smaller than the
- reference triangle. More specifically, 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 by a "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 down, millions to go.
-
- * Goto 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.
-
- * 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.
-
- Running the program
-
- o - As a warning, if you don't have a coprocessor, the delays may be
- intolerable.
-
- o - To view a fractal (no mouse required) from the command line:
-
- * fdesign sierpink
- or
- for %1 in (*.trn) do fdesign %1
- to view all .TRN files in the directory
-
- o - For interactive design, type "fdesign" return.
-
- o - The mouse is used for most prompting. Hit the mouse button for the
- top menu (without a coprocessor you may have to hold the mouse button
- down until the menu appears).
-
- o - 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 the transformations are complete enough, a small fractal
- image is displayed concurrent 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 - load 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)
-
- # 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. Allows you to edit the transformations
- and then save as a .TRN file or 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, type any key.
-
- # Multiple zooming is allowed, but know that the computation
- time required increases with every zoom.
-
- * Zoom reset - reset to the original full-sized image.
-
- * Save to .GIF - makes a copy of the screen to a .GIF file.
-
- * Quit - returns you to DOS.
-
- Future Enhancements
-
- o - 3-D fractals (anyone know how to input tetrahedrons nicely?)
-
- o - Variable "virtual screen" size
-
- o - TIFF file saving (if I can find the necessary technical info).
-
- 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" to create interesting
- connections.
-
- o - Expert fractal designers are made by 99% perspiration. I'm lucky to
- get one out of five that has any lasting appeal. To me, creating
- fractals seems like a very intuitive process. I've designed the user
- interface to facilitate a quick design cycle.
-
- References
-
- o - An excellent starting 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 any comments or suggestions to:
- Doug Nelson
- 1002 San Jacinto #316 Arbors
- Irving, TX 75063
- Compuserve ID 70431,3374
- SouthWest PC Users Group BBS 214-790-8960 ID=DOUG NELSON
-