Classic Iterated Function Systems

Larry Riddle, Agnes Scott College

Heighway Dragon Similarity

The Heighway dragon iterated function system consists of two functions.

\( f_1(\mathbf{x})= \left[ \begin{array}{cc} 1/2 & -1/2\\ 1/2 & 1/2 \end{array} \right]\mathbf{x} \)
scale by \(r\), rotate by 45°
\( f_2(\mathbf{x})= \left[ \begin{array}{cc} -1/2 & -1/2\\ 1/2 & -1/2 \end{array} \right]\mathbf{x} + \left[ \begin{array}{c} 1\\ 0 \end{array} \right] \)
scale by \(r\), rotate by 135°
where \(r =\frac{1}{\sqrt{2}}\).
 
 
 

Apply each of the geometric steps in the IFS to the Heighway dragon (in black) by clicking on the buttons to the left in sequence.

Initial image of Heighway dragon used to demonstrate IFS steps

If H is the set of points in the Heighway dragon, then we have that \[H = {f_1}(H) \cup {f_2}(H)\] which means that H is the union of the two sets obtained by applying the geometric transformation of each function in the IFS to the set H. In addition, \({f_1}(H)\) and \({f_2}(H)\) are just scaled versions of H.

Because of this self-similarity, the Heighway dragon can tile itself using four copies of itself, each scaled by 1/2 and rotated either 90° (green), 180° (orange), or 270° (blue), as you can see by tiling the copy in black below using the buttons to the left. Of course, by similarity, each of the four copies can themselves by tiled with even smaller copies of the Heighway dragon.

Image of Heighway dragon to which 4 tilings are applied.

This works because \(H = {f_1}(H) \cup {f_2}(H)\) implies that \[\begin{align} H &= {f_1}\left( {{f_1}(H) \cup {f_2}(H)} \right) \cup {f_2}\left( {{f_1}(H) \cup {f_2}(H)} \right) \\ &= {f_1}\left( {{f_1}(H)} \right) \cup {f_1}\left( {{f_2}(H)} \right) \cup {f_2}\left( {{f_1}(H)} \right) \cup {f_2}\left( {{f_2}(H)} \right) \\ \end{align}\]

Applying each function twice will scale by \({\left( {\frac{1}{{\sqrt 2 }}} \right)^2} = \frac{1}{2}\). Since $f_1$ will rotate by 45°, applying $f_1$ twice will rotate by 90°. Similarly, applying $f_1$ and $f_2$ in either order will rotate by 45°+135° = 180°. Finally, applying $f_2$ twice will rotate by 270°.