home *** CD-ROM | disk | FTP | other *** search
/ Graphics 16,000 / graphics-16000.iso / msdos / fractal / fdesi313 / fdes13s / fdesign.doc < prev    next >
Text File  |  1990-01-24  |  15KB  |  371 lines

  1.  
  2. Fractal Designer v3.08 by Doug Nelson Jan 24, 1990
  3.  
  4.   Introduction
  5.  
  6.      o - This is a tool that can generate a billion billion unique fractals.
  7.  
  8.      o - The executable program is submitted to the public domain.  I would 
  9.         appreciate comments on improvements or enhancements.
  10.  
  11.      o - This is not a Mandlebrot set or Julia set fractal program.
  12.  
  13.      o - If you have a supported printer, you can document your fractals and 
  14.         print a high-resolution fractal using the "virtual screen" option.
  15.  
  16.      o - Fdesign 3.07 displays differently than Fdesign 2.05.
  17.  
  18.           *  The aspect ratio of triangle transformations is preserved (this 
  19.              turns out to be mathematically important).  The "auto-scaling" 
  20.              will cause the attractor to span either the y direction or the x 
  21.              direction, not necessarily both.  As a result, some of your 
  22.              fractals from v2.05 will display differently than before.  
  23.  
  24.      o - Fdesign 3.07 .TRN files cannot be read by Fdesign 2.05 or earlier.  
  25.         The file format has changed to provide "fractional" pixel locations 
  26.         for triangles.  However Fdesign 3.07 CAN read files from any earlier 
  27.         revision.  
  28.  
  29.   Hardware Requirements
  30.  
  31.      o - An 80x87 is a must to make this program fun.
  32.  
  33.           *  To give you an idea of coprocessor enhancement:
  34.              an 8 MHz XT w/coprocessor > a 20 MHz 386 w/o coprocessor
  35.  
  36.      o - The program requires either EGA or VGA graphics.  VGA is much better 
  37.         because the pixel size is square.  (Sorry EGA fans, I didn't scale for 
  38.         odd-sized pixels).
  39.  
  40.      o - A mouse is a must.  In developing this program I used a Microsoft 
  41.         mouse, but have found some so-called "compatibles" that do not support 
  42.         a screen cursor.
  43.  
  44.      o - It also requires 350k bytes of free memory on an IBM PC-compatible 
  45.         computer (less if "Virtual Screen Print" is not used).
  46.  
  47.      o - A printer must be able to receive commands for one of these:
  48.  
  49.           *  HP Laser Jet II P --- the best pictures
  50.  
  51.           *  Epson 24 pin compatible --- I used an LQ-1000 for testing
  52.  
  53.           *  Epson 9 pin compatible --- I used an early FX series model
  54.  
  55.   Revisions
  56.  
  57.      o - v3.08 - more enhancements:
  58.  
  59.           *  A command line option to view .TRN files.
  60.  
  61.           *  You may have up to 32 triangle transformations.
  62.  
  63.           *  Zooming support on main screen and "virtual screen print".
  64.  
  65.           *  GIF file saving.
  66.  
  67.           *  IFS codes and FRACTINT interface
  68.  
  69.           *  Color codes exclude WHITE, DARKGREY, and BLACK.
  70.  
  71.           *  Two video "modes" available:
  72.  
  73.                #  Normal plot --- color codes the triangle transformations 
  74.                   (or IFS codes).
  75.  
  76.                #  Alternate display --- increments the color code every time 
  77.                   a pixel is plotted (shows density).
  78.  
  79.      o - v2.05 - lots of enhancements:
  80.  
  81.           *  A bug that caused a floating point domain error has been 
  82.              removed.
  83.  
  84.           *  Three printer types are supported.
  85.  
  86.           *  A "virtual screen" has been added with 1504x1200 resolution 
  87.              (used only for printing).
  88.  
  89.           *  File menu now shows a little plot from the filename you click 
  90.              on.
  91.  
  92.           *  256 color plotting added.
  93.  
  94.           *  You may turn off the graticule spacing when adjusting triangle 
  95.              transformations.
  96.  
  97.           *  Menus have been "cleaned up".
  98.  
  99.      o - v1.00 - added the 'small plot' to the Modify screen and the 'adjust 
  100.         triangle' command.
  101.  
  102.      o - v0.01 - the first distributed copy of FDESIGN.
  103.  
  104.   Basic Fractal Education
  105.  
  106.      o - Not all fractals can be generated by this program.
  107.  
  108.      o - IFS stands for Iterative Function System, just one method of 
  109.         generating fractals.
  110.  
  111.      o - The IFS fractals define a space which has a "fractional" dimension. 
  112.         This space has a "shape" defined by the IFS codes.
  113.  
  114.      o - Each IFS code is derived from a "transformation".  At least two 
  115.         transformations are required to generate a fractal.
  116.  
  117.      o - The triangle transformations.
  118.  
  119.           *  (The following may not be strictly correct)
  120.  
  121.           *  IFS codes are derived from Affine transformations.  A 
  122.              transformation triangle maps "from" the reference triangle "to" 
  123.              the transformation triangle itself.
  124.  
  125.           *  An Affine transformation moves points closer together.  In 
  126.              general, a transformation triangle must be smaller than the 
  127.              reference triangle.  More specifically, the A-B side of the 
  128.              transformation triangle must be shorter than or equal to the A-B 
  129.              side of the reference triangle.  The same is true of the B-C and 
  130.              A-C sides.
  131.  
  132.           *  However, a transformation triangle may not have all three sides 
  133.              equal to the reference triangle.
  134.  
  135.           *  The program will display an error message if you attempt to 
  136.              input a non-Affine transformation triangle.
  137.  
  138.                #  You can re-define the reference triangle by a "Scratch 
  139.                   Everything" command.
  140.  
  141.      o - Random IFS Algorithm
  142.  
  143.           *  A beginning point is selected which is on the fractal.
  144.  
  145.           *  A transformation triangle (IFS code) is randomly selected.
  146.  
  147.           *  The selected transformation is applied to the current point and 
  148.              the new point is plotted.
  149.  
  150.           *  One down, millions to go.
  151.  
  152.           *  Goto back to randomly select a transformation triangle (may or 
  153.              may not be the same as the transformation just applied).
  154.  
  155.           *  That's all there is to it.  Amazingly simple isn't it?  The 
  156.              problems are in the user interface.
  157.  
  158.           *  Even though the transformations are randomly selected, the 
  159.              resultant image is the same (by mathematical proof). Given 
  160.              infinite time, the resultant image has infinite detail, so the 
  161.              algorithm repeats until you interrupt with a mouse click.
  162.  
  163.      o - The references will give you everything you ever wanted to know on 
  164.         the theoretical basis for these images.
  165.  
  166.   Running the program
  167.  
  168.      o - As a warning, if you don't have a coprocessor, the delays may be 
  169.         intolerable.
  170.  
  171.      o - To view a fractal (no mouse required) from the command line:
  172.  
  173.           *  fdesign sierpink
  174.              or
  175.              for %1 in (*.trn) do fdesign %1
  176.              to view all .TRN files in the directory
  177.  
  178.      o - For interactive design, type "fdesign" return.
  179.  
  180.      o - The mouse is used for most prompting. Hit the mouse button for the 
  181.         top menu (without a coprocessor you may have to hold the mouse button 
  182.         down until the menu appears).
  183.  
  184.      o - The Top Menu screen:
  185.  
  186.           *  Normal Plot - plots (to the screen) the current fractal in EGA 
  187.              or VGA 16 colors.
  188.  
  189.           *  Edit Transformations screen - allows you to change the 
  190.              description of the fractal (edit triangle transformations).
  191.  
  192.                #  If the transformations are complete enough, a small fractal 
  193.                   image is displayed concurrent with your edits.
  194.  
  195.                #  Scratch Everything - cleans the workspace.  Then you 
  196.                   specify a reference triangle and input transformation 
  197.                   triangles until your right mouse button ends the input.
  198.  
  199.                #  Add a Triangle - you input three points defining an 
  200.                   additional triangle.
  201.  
  202.                #  Delete a Triangle - you select a triangle to delete.
  203.  
  204.                #  Adjust a Triangle - allows you to move a single vertex of a 
  205.                   triangle.
  206.  
  207.                      First select a triangle by finding an unambiguous edge 
  208.                        of the triangle and click left.
  209.  
  210.                      Then click on the corner you wish to move.
  211.  
  212.                      Now you may move the cursor to the new position and 
  213.                        click left.  The fractal image in the upper right 
  214.                        updates with your edits.
  215.  
  216.                      You may continue to click left and watch the fractal 
  217.                        change in the upper right corner.
  218.  
  219.                      When you're satisfied, click the right mouse button.
  220.  
  221.                #  Grat is on/off - clicking on this will toggle the "on/off". 
  222.                    If grat is off, you may place triangle vertices between 
  223.                   dots.  If grat is on, the closest graticule will be used to 
  224.                   place the vertex.
  225.  
  226.                #  Main Menu - return to plot fractal on the big screen.
  227.  
  228.           *  Load file screen - load a transformation (.TRN) file.
  229.  
  230.                #  You may click left on a filename to preview the fractal in 
  231.                   that file.
  232.  
  233.                #  When you see the one you want, click right.
  234.  
  235.                #  You will be thrown into the Edit Transformations Screen.  
  236.                   If you want a big screen image, click on "Main Menu" 
  237.                   immediately.
  238.  
  239.                #  I have included several .TRN files which you may load, 
  240.                   display and modify.
  241.  
  242.           *  Save file - save the current transformations to a file.
  243.  
  244.                #  Type in the filename (without extension) that you wish to 
  245.                   save the transformations to.
  246.  
  247.                #  If the filename already exists, you will be prompted for an 
  248.                   ok.
  249.  
  250.                #  Saving to another subdirectory or disk is not supported.
  251.  
  252.           *  Alternate display - plots in 16 colors, but starts with color 1 
  253.              and increments the color every time a pixel is re-plotted.
  254.  
  255.           *  Print - Prints the filename, the current screen, the Edit 
  256.              Transformations and IFS codes.  This is intended as a way to 
  257.              document your fractals.
  258.  
  259.           *  Virtual Screen Print - Use this to create high-res pictures on a 
  260.              printer.
  261.  
  262.                #  Plot 1000000 points - Plots to a virtual screen (1504x1200) 
  263.                   a million points.  I've found a million to be adequate for 
  264.                   most images.  This number will increase if you have already 
  265.                   zoomed on the image.  This number is only a recommendation 
  266.                   by a very dumb algorithm.
  267.  
  268.                #  Plot N points - Again, this plots to the virtual screen as 
  269.                   many points as you specify.  It occasionally happens that 
  270.                   you may need to plot 20 million points to get a full 
  271.                   picture.  You specify the number of points in thousands 
  272.                   (5000 means 5 million).
  273.  
  274.                #  Print - prints the virtual screen to your printer on LPT1.
  275.  
  276.                #  Return - gets you back to the top menu.
  277.  
  278.           *  IFS codes (FRACTINT)
  279.  
  280.                #  Write a FRACTINT file --- computes IFS codes for FRACTINT's 
  281.                   screen size and writes an ascii file with an extension of 
  282.                   .IFS.
  283.  
  284.                      FRACTINT viewing is accomplished with the following 
  285.                        command line:
  286.  
  287.                            FRACTINT type=ifs ifs=myfile.ifs video=F4
  288.  
  289.                            You would, of course, replace 'F4' with your own 
  290.                             video mode preference from the help screens.
  291.  
  292.                #  Read a FRACTINT file --- computes triangle transformations 
  293.                   from the IFS codes.  Allows you to edit the transformations 
  294.                   and then save as a .TRN file or a .IFS file (for FRACTINT 
  295.                   viewing).
  296.  
  297.                #  IFS codes for this screen --- these are a,b,c,d,e,f,p used 
  298.                   to generate the main display.  Note that no scaling to the 
  299.                   display is required --- the IFS codes are already scaled for 
  300.                   it.
  301.  
  302.           *  Zoom in
  303.  
  304.                #  Brings up a zoom box.  
  305.  
  306.                #  The box may be moved by moving the mouse.
  307.  
  308.                #  The size of the box may be changed by holding the left 
  309.                   mouse button and moving the mouse up or down.
  310.  
  311.                #  To accept the zoom box, type any key.
  312.  
  313.                #  Multiple zooming is allowed, but know that the computation 
  314.                   time required increases with every zoom.
  315.  
  316.           *  Zoom reset - reset to the original full-sized image.
  317.  
  318.           *  Save to .GIF - makes a copy of the screen to a .GIF file.
  319.  
  320.           *  Quit - returns you to DOS.
  321.  
  322.   Future Enhancements
  323.  
  324.      o - 3-D fractals (anyone know how to input tetrahedrons nicely?)
  325.  
  326.      o - Variable "virtual screen" size
  327.  
  328.      o - TIFF file saving (if I can find the necessary technical info).
  329.  
  330.   Tips on Building Fractals
  331.  
  332.      o - Experiment with only two transformation triangles.  There is a lot a 
  333.         of creativity in some of those two triangle transformations.  Then add 
  334.         a triangle and experiment with various rotations and scalings.
  335.  
  336.      o - Start with one of the example files and adjust a corner and watch 
  337.         the progress.
  338.  
  339.      o - When adding a triangle, start with a small triangle and adjust its 
  340.         corners while watching the fractal in the upper right corner.
  341.  
  342.      o - Make the colored regions "just touching" to create interesting 
  343.         connections.
  344.  
  345.      o - Expert fractal designers are made by 99% perspiration.  I'm lucky to 
  346.         get one out of five that has any lasting appeal.  To me, creating 
  347.         fractals seems like a very intuitive process.  I've designed the user 
  348.         interface to facilitate a quick design cycle.
  349.  
  350.   References
  351.  
  352.      o - An excellent starting reference is "Fractals Everywhere" by Michael 
  353.         Barnsley. 
  354.  
  355.      o - BYTE magazine, January 1988.
  356.  
  357.      o - A good reference is "The Science of Fractal Images" by M.F. 
  358.         Barnsley, R.L. Devaney, B.B. Mandlebrot, H.-O. Peitgen, D. Saupe, and 
  359.         R.F. Voss with contributions by Y. Fisher and M. McGuire.
  360.  
  361.      o - Thanks to Bert Tyler [73477,433] (CIS) and Lee Daniel Crocker 
  362.         [73407,2030] (CIS) for their .GIF encoder.
  363.  
  364.   Send any comments or suggestions to:
  365.    Doug Nelson
  366.    1002 San Jacinto #316 Arbors
  367.    Irving, TX 75063
  368.    Compuserve ID 70431,3374
  369.    SouthWest PC Users Group BBS 214-790-8960 ID=DOUG NELSON
  370.  
  371.