| VSFCF - CVM 1.1 |

Figure 2. Drawn this way shows the reason for the name snowflake
curve.
It actually consists of three copies (placed along the sides of an
equilateral triangle) of the original (in blue) von Koch curve.
Also available is a larger, higher resolution version (6kb).
Source code is available.
We can use iterated function systems to give a quick complete definition of the snowflake curve. It's the attractor determined by following four similarities in the complex plane:
Since 0 is the fixed point of f0 and 1 is the fixed point of f3 and for k=0,1,2 we have fk(1)=fk+1(0), then the attractor of the IFS {f0, f1, f2, f3} can naturally be described as a continuous curve. (See [Hu, p. 730] for the general theorem.) Note that to have f1(1)=f2(0) we must have that Re(w)=1/(2s)-1.
Now, if we let w vary in equation (1), with w=eit for t in [0, p/2], and also let s vary so that f1(1)=f2(0), namely s=1/(2(1+Re(w))), we get a family of IFS's that gives us a continuous curve at each stage. (Note that we always have f0(1)=f1(0) and f2(1)=f3(0).) As t (the angle of rotation for f1) increases from 0 to p/2, s will increase from 1/4 to 1/2. For t=0 the attractor is just the unit interval, for t in (0,1) we get a snowflake like curve with dimension increasing from 1 to 2 as t increases. For t=p/3 we get the classical snowflake curve, and for t=1 we get what's known as the Sierpinski-Knopp space-filling curve with image a filled in right isosceles triangle.
Four examples are shown in Figure 3 with s equal to about .252, .288, .336, and .444 respectively.


Figure 3. Frames from the increasing dimension snowflake curve. Also available is an animated view (126 kb) and a speed controlled animation. Use the browser back button to return. Source code is available.A similar idea to these variations of the von Koch curve is attributed to J. Lighthill by Mandelbrot ([Ma1, pp. 38-39]). The snowflake curve can also be produced using just two IFS functions, although then reflections are needed in addition to shrinking, rotating, and shifting. This is shown by example in source code.
|
|