[Math] Determine IFS of the von Koch Curve

fractalsfunctions

I am (still) reading Falconer's Fractal Geometry book and I have reached the section on Iterated Function Systems (IFSs). He defines the IFS for the middle third Cantor set:

enter image description here

as $S_{1}(x)=\frac{1}{3}x$, $S_{2}(x)=\frac{1}{3}x+\frac{1}{3}$ since, at each iteration of the construction, you shorten the line to a third of its length and then do the same to get a second interval of a third the length and then move it along to the right by $\frac{2}{3}$.

I am trying to determine the IFS for the von Koch curve:

enter image description here

So far I have worked out that $S_{1}(x,y)=(\frac{1}{3}x,y)$ and $S_{2}(x,y)=(\frac{1}{3}x+\frac{2}{3},y)$ since we are now working in $\mathbb{R}^{2}$. I have also partially worked out $S_{3}$ and $S_{4}$ to be $S_{3}(x,y)=(\frac{1}{5}x+\frac{1}{3},Y_{3})$ and $S_{4}(x,y)=(\frac{1}{5}x+\frac{2}{3},Y_{4})$.

Does anyone know how to determine the $Y_{3}$ and $Y_{4}$?

Best Answer

TL;DR version: you are not taking rotation into account. This is basically irrelevant in $\mathbb{R}$, but makes a huge difference in $\mathbb{R}^d$, where $d\ge 2$.

In Detail:

A contracting similitude can be characterized as a map $$ S : \mathbb{R}^{d} \to \mathbb{R}^d $$ which takes the form $$ S(\vec{x}) = c U \vec{x} + \vec{b}, $$ where $c \in (0,1)$ is the scaling ratio of $S$, $U$ is a unitary matrix (e.g. a rotation in $\mathbb{R}^2$, and $\vec{b}\in\mathbb{R}^n$ is a translation. In this language, the maps $S_1$ and $S_4$ which you describe can be written as $$ S_1(\vec{x}) = \frac{1}{3} \vec{x} \qquad\text{and}\qquad S_4(\vec{x}) = \frac{1}{3} \vec{x} + \begin{bmatrix} \frac{2}{3} \\ 0 \end{bmatrix}. $$ In each of these cases, the we can take $U = I$ to be the identity. For the other two maps, you are going to need to rotate. In general, we can describe a rotation by $\theta$ in $\mathbb{R}^2$ by the matrix $$ R_{\theta} := \begin{bmatrix} \cos(\theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\theta) \end{bmatrix}. $$ To get the piece of the von Koch curve that slopes up from left to right, we require a rotation of $\frac{\pi}{3}$, then a translation by $\frac{1}{3}$, which gives the map $$ S_2(\vec{x}) = \frac{1}{3} R_{\pi/3} \vec{x} + \begin{bmatrix} \frac{1}{3} \\ 0 \end{bmatrix} = \frac{1}{3} \begin{bmatrix} \frac{1}{2} & -\frac{\sqrt{3}}{2} \\ \frac{\sqrt{3}}{2} & \frac{1}{2} \end{bmatrix} \vec{x} + \begin{bmatrix} \frac{1}{3} \\ 0 \end{bmatrix}. $$ Finally, for the last piece of the curve, we will need to rotate by $-\frac{\pi}{3}$, translate right by $\frac{1}{2}$, and translate up by $\frac{\sqrt{3}}{6}$ (the origin gets mapped to the "top" of the snowflake, which is the vertex of an equilateral triangle sitting on the $x$-axis, centered at $x=\frac{1}{2}$, with sides of length $\frac{1}{3}$). This gives $$ S_3(\vec{x}) = \frac{1}{3} R_{-\pi/3} \vec{x} + \begin{bmatrix} \frac{1}{2} \\ \frac{\sqrt{3}}{6} \end{bmatrix} = \frac{1}{3} \begin{bmatrix} \frac{1}{2} & \frac{\sqrt{3}}{2} \\ -\frac{\sqrt{3}}{2} & \frac{1}{2} \end{bmatrix} \vec{x} + \begin{bmatrix} \frac{1}{2} \\ \frac{\sqrt{3}}{6} \end{bmatrix}. $$

Related Question