home *** CD-ROM | disk | FTP | other *** search
/ TopWare 18: Liquid / Image.iso / liquid / top2168 / ifspaint.txt < prev    next >
Text File  |  1994-02-27  |  9KB  |  124 lines

  1. ********************************************************************
  2.  
  3. IFS Paint 1.2 - Fractal Editor for Iterated Function Schemes
  4. (C) 1993,1994 by Morad Khosrow Shahi
  5.  
  6. ********************************************************************
  7.  
  8.  
  9.  
  10.  
  11. 1. What are Iterated Function Schemes?
  12.  
  13. A mapping S is called "contraction" if there is a number c with 0 < c < 1 and |S(x) - S(y)| < c.|x - y|. Now suppose S1,...,Sn are contractions, then we call a set F "invariant" if equality holds for
  14.     F = S1(F) U S2(F) U ... U Sn(F)         (U = Union).
  15.  
  16. The following statements can be proved:
  17. - For a finite number of contractions S1,...,Sn there always exists a unique compact invariant set F, which is not empty.
  18. - F ist often what we call "fractal", i.e. it has very complex structure, it is "self-similar", it has a rather simple definition and can be generated by iteration etc.
  19. - A pre-fractal of F (a visual approximation of F, because most of the time you can't display exactly F) can be generated using the following iteration algorithm:
  20.  
  21.     1. Pick at random a starting point (Xn,Yn)
  22.     2. In each iteration, pick at random one of the contractions;
  23.        Replace the iteration-point, i.e. (Xn,Yn) = S(Xn,Yn);
  24.        Display (Xn,Yn)    (after about 100 iterations);
  25.        If the user didn't abort, go on!
  26.  
  27. The interesting fact about IFS is, you can describe very complex graphics by just a few parameters. It can be shown that every compact set can be approximated by invariant sets of a finite number of contractions. This means you can take pictures and describe them through mathematical formulas, and this takes much less storage-space than conventional graphics-formats.
  28.  
  29.  
  30.  
  31.  
  32. 2. The program IFS Paint V1.2
  33.  
  34. There are other programs that can also display or generate IFS fractals (like FractInt & WinFract), but only IFS Paint allows you to paint them graphically, just as if you were working with CorelDraw or something similar. The advantage: you will finally "understand" these pictures everybody generates, but knows nothing about.
  35. IFS Paint is an MDI Windows application with a lot of comfort. There are many program options available, statistics, optimizations etc. And IFS Paint is FREE!!!
  36.  
  37. Version 1.2 offers a few more features than V1.1: now you can automatically fit (upon loading!) the intervals to the IFS-objects or to the invariant set instead of "looking" for them. Some Features that were accessible only through the INI-File are now also implemented in the Settings-Dialog.
  38.  
  39.  
  40.  
  41.  
  42. 3. A short description of the functionality:
  43.  
  44. Create, modify & test IFS fractals; save them, also in BMP and/or RLE file format. The program uses a file format that is compatible to FractInt & WinFract (though only one-way: WinFract files allow several entries in one file and comments too, IFS Paint doesn't). Test what happens if probabilities aren't optimized for the generation of the invariant set (amazing effects!!!).
  45.  
  46. Contractions are displayed as rectangles (with an "L" in the upper left corner) that can be translated, rotated, stretched or inverted using the mouse (click on the corners of the wire frames).
  47. Add, delete or copy contractions; load from and save to a file your favorite IFS fractals. Generate the invariant sets (the fractal graphic!) and save them.
  48.  
  49.  
  50. 3.1 Toolbar functions (from top to bottom)
  51.  
  52. - Translation Tool: Click (with the left mouse button) on the corner of an object and drag it to it's destination (the cursor is the usual arrow).
  53. - Rotation Tool: Click on the corner of an object and move (drag) the mouse up or down to rotate the object (counter-) clockwise around it's center (the cursor is a winding arrow).
  54. - Scaling Tool: Click on the corner of an object and move (frag) the mouse up/down or left/right to scale the object vertically or horizontally (the cursor is a cross with horiz./vert. arrows on it's sides).
  55. - Add Tool: To add a now object, move the cursor (a cross) to where you want to have the left top corner (of the rectangle) and then click and drag the mouse to the right bottom corner. A new object appears.
  56. - Delete Tool: Click on a corner of the object to delete. Beware: there is no Undo-Function in IFS Paint! (the cursor is an arrow with an X).
  57. - Copy tool: Click on a corner of the object to copy and drag the cursor (an arrow with a "copy" subtitle) to the position where you want to have the selected corner of the copy.
  58. - Load File Tool: usual common dialog.
  59. - Save File Tool: usual common dialog. Saves in IFS-Format. Graphics must be saved with the File-menu command Save Bitmaps As.
  60. - Generate Tool: Generate the invariant set of the objects. This is only possible if all objects are contracting (usually with blue or green frames). (Don't forget the settings!)
  61. - Beneath the Tools you can see the current cursor-coordinates.
  62.  
  63.  
  64. 3.2 File Menu
  65.  
  66. The usual commands. To save the generated graphics, choose the command "Save Graphics As", whereas the "Save As"-command (just) uses the IFS file format (compatible to WinFract and FractInt).
  67.  
  68.  
  69. 3.3 Options Menu
  70.  
  71. - Settings: Options dialog for the generation of the invariant set. You can set: (a) the visible intervals (the piece of the complex plane you see in the document window); (b) the maximum number of iterations (infinite if =0); (c) whether the probabilities (for the contractions/objects in the random iteration algorithm) are optimized or not; (d) whether statistics are displayed (effective number of iterations and the graphics resolution).
  72. - Generate Invariant Set: like the toolbar command.
  73. - Delete Invariant Set: clears the document from the bitmap (for example when you want to modify the objects).
  74. - Hide object frames: (when checked) for example to contemplate the invariant set. Beware: if the objects (the frames) are invisible and you add some more objects, you may get surprising results!
  75. - Interval Coordinates: display the interval coordinates at the corners of the document window (when checked). This is useful to understand the proportions etc.
  76. - Unit Square: display the unit square (when checked). Sometimes you want to know where your objects are placed compared to the unit square, so you can "see" the translations or the contraction factors. Remember: the unit square looks like the identitiy transformation (no changes), so the IFS objects should be "smaller". The unit square has no influence on the generation of the invariant set.
  77. - Fit Intervals To: (a) Invariant Set: set the intervals in a way that the invariant set AND the objects be fully visible; (b) Objects: same, just with the objects. the invariant set may lie in other parts of the plane; (c) Settings: just set the intervalls to the ones in the Settings-dialog. Beware: if options (a) or (b) are selected, changing the intervals in the Settings dialog will take no effect!
  78. - Toolbar: display toolbar (if checked).
  79.  
  80.  
  81. 3.4 The Windows Menu
  82.  
  83. The ususal commands.
  84.  
  85.  
  86. 3.5 Miscellaneous
  87.  
  88. * Look at the comments in the INI file (some options are accessible only there).
  89.  
  90.  
  91. * If you are curious about IFS, read one ore more of the following books:
  92.  
  93. M.F.Barnsley, Fractals Everywhere, Academic Press, London 1988
  94. M.F.Barnsley, L.P.Hurd, Fractal Image Compression, AK Peters, Wellesley 1993
  95. K.E.Falconner, Fractal Geometry, J.Wiley & Sons, Chichester 1990
  96.  
  97.  
  98. * IFS Paint is delivered with the following files:
  99.  
  100. ifspaint.exe        Main file
  101. bwcc.dll        Borland custom controls
  102. ifspaint.ini        INI-File, program works anyway if missing
  103.             Should be copied into the WINDOWS directory.
  104. ifspaint.txt        This file
  105. *.ifs            Sample files
  106.  
  107.  
  108. * The author is reachable on CompuServe (100275,3153) and via InterNet (100275.3153@compuserve.com). Please report the errors you find! The source code is available at request (Borland C++ 3.1 and OWL 1.0).
  109.  
  110.  
  111. * If you speak german, there is a complete documentation (a WinWord-2 file with more and better explanations) with the german version of IFS Paint in the German Forum of CompuServe (GO GERNET).
  112.  
  113.  
  114.  
  115.  
  116. 4. Copyrights
  117.  
  118. IFS Paint 1.2 (C) 1993,1994 by Morad Khosrow Shahi.
  119. This software is provided as is. The author takes no responsability for the correctness of the results given by the program, nor for the correctness of the information in this file. No changes whatsoever are allowed to the program without written consent of the author. Feel free to copy and distribute the program, it is public domain/freeware.
  120.  
  121. BWCC.DLL is a Borland product that may be distributed with executable files created by Borland compilers.
  122.  
  123. The Graphics algorithms ("Save Bitmap As" in the file menu) are extracted from the program "Bitmaps" by Larry Widing (downloaded from CompuServe). Thank you Larry, that saved me!
  124.