"Fossies" - the Fresh Open Source Software Archive
Member "gimp-2.10.28/plug-ins/ifs-compose/README.ifscompose" (14 Sep 2021, 2981 Bytes) of package /linux/misc/gimp-2.10.28.tar.bz2:
As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard
) with prefixed line numbers.
Alternatively you can here view
the uninterpreted source code file.
4 IfsCompose is a plug-in for GIMP that allows
5 the creation of Iterated Function System fractals by direct
6 manipulation onscreen of the component transforms.
9 IFS Fractals
12 You may be familiar with IFS's from the screen
13 hack 'Flame'. They are also the basis of fractal image compression.
15 For a brief introduction to IFS's see Foley and van Dam, et
16 al,. _Computer Graphics, Principles and Practice_, 2nd Ed.,
17 (Addison Wesley, 1990).
19 The standard references in the field are Michael Barnsley's books (though
20 I haven't looked at them yet):
22 M. Barnsley, _Fractals Everywhere_, Academic Press Inc., 1988.
23 M. Barnsley and L. Hurd, _Fractal Image Compression_, Jones and
26 Briefly, you take a point and repeatedly apply one of a set of
27 transformations to it, choosing randomly between them, and plot the
28 point at each step. An interesting result (the Collage Theorem) says
29 that if you can find a set of transformations that break up an image
30 into smaller copies of itself, then the resulting fractal exactly
31 reproduces the original image. For example, here is a classic image
32 of a leaf and the same image with the four component transforms
33 colored distinctively.
35 But the best way to appreciate this may to install this program and
36 try it out. I've extended the basic concept as found in
37 Foley and van Dam to include transformations in color space as
38 well as in real space.
42 The included Makefile should work with minor modifications on most
43 systems if you have installed Gimp normally. Put the resulting binary
44 in ~/.gimp/plug-ins or the system-wide plug-ins directory.
46 The included files gtkaspectframe.c/.h implement a modified frame
47 widget that guarantees that the aspect ratio of the child widget
48 remains constant when the parent is resized. It's sort of specialized,
49 but if you think it would be useful for other purposes, let me know
50 and I'll lobby for its inclusion in the standard gtk.
54 The interface is somewhat complex and it may take you a little while
55 to get the hang of it. (There are 19 parameters for each
56 transformation in your fractal, after all). The best way to learn is
57 probably to start by making small changes, and seeing what they
58 do. Click on the transformations (represented by polygons) in the
59 design window to manipulate them interactively.
61 Button-1: rotate/scale
62 Button-2: distort
63 Button-3: move
65 If you hold down shift while clicking, you can select multiple polygons
66 to apply the transformation to.
68 Try not to click too near the center of a polygon, as this will
69 amplify your actions.
71 Note that if you render onto an image with an alpha channel, the
72 background will be transparent (very useful for compositing several
73 fractals), otherwise the background will be the current background.
75 There are tutorials and some example images at:
81 Have fun!
83 Owen Taylor