Classic Iterated Function Systems

Larry Riddle, Agnes Scott College

Dihedral Group and Triangle Fractals

Dihedral Group

The six transformations of an equilateral triangle shown below form a finite group called the dihedral group of order 6. Transformations 2 and 3 are counterclockwise rotations by 120° and 240°, respectively. Transformations 4, 5, and 6 are reflections across the altitudes through the top, right, and left vertices, respectively.

The 6 symmetries of the equilateral triangle

The following table shows the result of combining one transformation with another. The one down the rows is done first, followed by the one across the columns. If we call the transformations $T_n$ for $n$ = 1, 2, 3, 4, 5, 6, then the table shows the result of the composition ${T_c \circ T_r}$, where $r$ and $c$ denote row and column.

\[\begin{array}{cc} {} & {\begin{array}{cccccc} 1 & 2 & 3 & 4 & 5 & 6 \\ \end{array}} \\ {\begin{array}{c} 1 \\ 2 \\ 3 \\ 4 \\ 5 \\ 6 \\ \end{array}} & {\boxed{\begin{array}{cccccc} 1 & 2 & 3 & 4 & 5 & 6 \\ 2 & 3 & 1 & 6 & 4 & 5 \\ 3 & 1 & 2 & 5 & 6 & 4 \\ 4 & 5 & 6 & 1 & 2 & 3 \\ 5 & 6 & 4 & 3 & 1 & 2 \\ 6 & 4 & 5 & 2 & 3 & 1 \\ \end{array}}} \\ \end{array}\]

So, for example, applying a reflection across the right corner of an equilateral triangle (#5) followed by a rotation by 120° (#2) is the same as doing a reflection of the triangle across the left corner (#6), as illustrated below. Hence $T_6 = T_2 \circ T_5$. Note that the composition order is not commutative, i.e. the order in which you do the operations is important.

2x5equals6

In fact, you only need transformations 2 (rotation by 120°) and 4 (reflection across a vertical line) to generate the other three non-identity transformations:

to get transformation 3, repeat transformation 2 twice: $T_3 = T_2 \circ T_2$
to get transformation 5, do reflection 4 then rotation 2: $T_5 = T_2 \circ T_4$
to get transformation 6, do rotation 2 then reflection 4: $T_6 = T_4 \circ T_2$

This means that the functions in an iterated function system based on these types of triangle fractals can be generated by a combination of scaling by 1/2, rotating by 120°, and a vertical reflection. Well, except you must always remember to include the extra 180° rotation for the "middle" triangle.

Iterated
Function
System

As an example, consider the triangle fractal 253. We will take the initial set to be an equilateral triangle with vertices at the origin and (1,0).

253 pattern

The first function must scale by 1/2 and rotate by 120. As the figure below shows, the triangle must also be translated 1/2 to the right.

253 function 1
\[\begin{aligned} {f_1}({\mathbf{x}}) &= \left[ {\begin{array}{cc} {\cos {{(120)}^ \circ }} & { - \sin {{(120)}^ \circ }} \\ {\sin {{(120)}^ \circ }} & {\cos {{(120)}^ \circ }} \\ \end{array} } \right]\left[ {\begin{array}{cc} {1/2} & 0 \\ 0 & {1/2} \\ \end{array} } \right]{\mathbf{x}} + \left[ {\begin{array}{c} {1/2} \\ {0} \\ \end{array} } \right] \\ &= \left[ {\begin{array}{cc} { - 1/4} & {-\sqrt 3 /4} \\ { \sqrt 3 /4} & { - 1/4} \\ \end{array} } \right]{\mathbf{x}} + \left[ {\begin{array}{c} {1/2} \\ {0} \\ \end{array} } \right] \\ \end{aligned} \]


The second function must scale by 1/2, followed by a reflection across the vertical axis, and then a rotation by 120°. But because this is the middle triangle, the function must also do a rotation by 180°. As the figure below shows, this must then by followed by a translation by 1/2 to the right.

253 function 2
\[\begin{aligned} {f_2}({\mathbf{x}}) &= \left[ {\begin{array}{cc} { - 1} & 0 \\ 0 & { - 1} \\ \end{array} } \right]\left[ {\begin{array}{cc} {\cos {{(120)}^ \circ }} & { - \sin {{(120)}^ \circ }} \\ {\sin {{(120)}^ \circ }} & {\cos {{(120)}^ \circ }} \\ \end{array} } \right]\left[ {\begin{array}{cc} { - 1} & 0 \\ 0 & 1 \\ \end{array} } \right]\left[ {\begin{array}{cc} {1/2} & 0 \\ 0 & {1/2} \\ \end{array} } \right]{\mathbf{x}} + \left[ {\begin{array}{c} {1/2} \\ 0 \\ \end{array} } \right] \\ &= \left[ {\begin{array}{cc} {-1/4} & {\sqrt 3 /4} \\ {\sqrt 3 /4} & { 1/4} \\ \end{array} } \right]{\mathbf{x}} + \left[ {\begin{array}{c} {1/2} \\ 0 \\ \end{array} } \right] \\ \end{aligned} \]


The third function must scale by 1/2, then do two rotations by 120° (for a total rotation of 240°). The top of the scaled triangle must then be translated to the midpoint of the right side of the original triangle.

253 function 3
\[\begin{aligned} {f_3}({\mathbf{x}}) &= \left[ {\begin{array}{cc} {\cos {{(240)}^ \circ }} & { - \sin {{(240)}^ \circ }} \\ {\sin {{(240)}^ \circ }} & {\cos {{(240)}^ \circ }} \\ \end{array} } \right]\left[ {\begin{array}{cc} {1/2} & 0 \\ 0 & {1/2} \\ \end{array} } \right]{\mathbf{x}} + \left[ {\begin{array}{c} {3/4} \\ {\sqrt 3 /4} \\ \end{array} } \right] \\ &= \left[ {\begin{array}{cc} { - 1/4} & {\sqrt 3 /4} \\ { - \sqrt 3 /4} & { - 1/4} \\ \end{array} } \right]{\mathbf{x}} + \left[ {\begin{array}{c} {3/4} \\ {\sqrt 3 /4} \\ \end{array} } \right] \\ \end{aligned} \]

 
This IFS produces the following triangle fractal.

253 fractal