In this chapter, some of the most common fractals will be described. These fractals and the related terms will be used in the later chapters to model different natural phenomena. The Mandelbrot fractal is the first fractal described. We will also discuss why and how fractals can be used to model natural phenomena, and explain Iterated Function Systems (IFS) and Hopalong fractals.

  1. Mandelbrot fractal

  2. Fractals are useful when modeling natural phenomena. There are however many types of fractals, and only some of them are useful in modeling nature. A deeper understanding is needed to choose the fractal best suited for the current need. It was Benoit Mandelbrot who introduced fractal geometry [1, 2] as a way to describe irregularly shaped objects or natural phenomena.

    The word fractal derives from the Latin word fractus meaning 'fragmented' or 'broken'. The reason for this is that fractals are self-similar, i.e., parts or fragments of a fractal resemble the whole. Benoit Mandelbrot stated that natural forms often repeat themselves on a smaller scale, as for example in snowflakes, trees and coastlines. Fractal geometry has been used in physiology, chemistry, mechanics and in the movie industry.

    There is a fractal named after Benoit called the Mandelbrot fractal [3] (Figure 1). This fractal is the set of all complex values c so that Z does not approach infinity when iterating Zt+1 = Zt2+c. (Z0 = 0). It is common to display the Mandelbrot fractal so that the pixel x + yi = c is set to black if it is part of the Mandelbrot set (i.e. Z does not go towards infinity). If the pixel is not part of the Mandelbrot set the color will be a function of how many iterations it takes before Z becomes greater than 2 (i.e. it will go towards infinity). Typically the color is set to number of iterations mod max. color, where number of iterations is the number of iterations until Z is greater than two, and max. color is the number of colors in the color palette.

    These types of fractals that describe 2-dimensional space are generally not suitable for modeling natural phenomena. Even though they seem to be an image of a biological being rather than a creation of a computer, they seldom look like something that can be found in the nature.

    The mandelbroth image can only be seen with java-enabled browsers.

    Figure 1: The Mandelbrot fractal. (JAVA)

  3. Iterated Function System

  4. Another way to create a fractal is to use the Iterated Function Systems (IFS) [4] approach. IFS was developed by Michael Barnsley and his co-workers at the Georgia Institute of Technology. The idea is as follows: select one starting object such as a polygon, a line or a point. Replace this object by a set of similar objects. These objects are scaled, rotated and translated according to a specific "generator" in relation to their original object. Every new object is again replaced according to the same generator. This process is repeated a number of times. The generator will normally create two or more objects and the image will often branch out. This is best described with a few pictures.

    Figure 2: Growth of a tree. (a) Start object. (b) Tree after one iteration. (c) Tree after 2 iteration. (d) Tree after 9 iterations.

    The starting object is just a single line as we can see in Figure 2 (a). This object is defined by its size position and direction. This line generates three new lines and all three are scaled, rotated and translated according to the generator as follows:

    Branch 1 Move forward 0.3 units.
    Shrink size to half.
    Rotate right 55 degrees.
    Branch 2 Move forward 0.7 units.
    Shrink size to half.
    Rotate left 40 degrees.
    Stem Move forward 1 unit.
    Shrink size to 0.8 times the original size.
    Rotate left 2 degrees.

    Table 1: Generator for IFS.

    All movements, scaling and rotations are made relative to the original line.

    All of the three new "branches" create three more branches each (Figure 2 (c)) according to the same generator. In Figure 2 (d) we can see the tree after nine iterations.

    The compression rate is excellent since the image is created by only specifying size, angle and position for the first line, and the scaling, rotation and translation for the three objects that are generated, plus the iteration depth.

  5. Hopalong

  6. Displaying the objects generated by the IFS method becomes slower when the number of iterations is large. One way to see where the image is "heading" is to use a "hopalong" algorithm. Based on the work of Barry Martin from Aston University (Birmingham/England), the hopalong fractal was first explained by A. K. Dewdney in Scientific American (Sept. 1986). This algorithm creates an image showing approximately what the IFS will look like when iterated a large number of times. This approach randomly applies one set of rotation, translation and scaling (specified as described for the IFS) according to specified probability rules. The hopalong fern top has a more natural shape in Figure 3. These images are not created using the same generator as otherwise the leaves in the IFS would "melt together" and the fern would look like a big blob if iterated a large number of times. The time used for fine-tuning can be drastically reduced by using the hopalong algorithm.

    It is also possible to create interesting models using the Lindenmayer systems (which contains IFS's as a subset). L-systems are a lot more involved and a full chapter will be dedicated to describe this technique.

    Figure 3:    (a) Hopalong.                              (b) IFS


anarule.gif (1534 bytes)


naprev_cmp.gif (1754 bytes)nahome_cmp.gif (1799 bytes)naup_cmp.gif (1668 bytes)nanext_cmp.gif (1698 bytes)