Theory

The
assumption of
D being smaller than N can be relaxed. Suppose for the moment that N
< D”
< 2 * N (optionally
after decreasing
D” modulo 2*N). The figure with this value of D” is
similar to the figure with D
= 2*N – D” (apart from a figure’s
translation). The proof is based on
operations on the full array of directions. The recipe for pair (N, D)
can be
written as [ R *f*(R,L) ] where *f*(R,L)
denotes the partial recipe from the second direction to the N^{th}
direction. Note that the first direction of the recipe (R) is an
arbitrary
choice; we could have chosen L instead of R as well. The partial recipe
*f* has an anti-symmetry property. If
the
first direction of *f* is R, then the
last direction is L, and vice versa. And this property holds also for
the other
pairs of directions in *f*. Consider
the full array of directions for the figure with D” = 2*N
– D. This array
equals [ R *f*(L,R) ]^{6},
where *f*(R,L) is the partial recipe
based on D. When we mirror (with respect to the initial orientation)
drawing
this array, then we get the array [ L *f*(R,L)
]^{6} . Note that the drawing shows an
anti-clockwise rotation. Now,
start the drawing from the second direction so that the (cyclic) array
becomes
[ *f*(R,L) L ]^{6}
. Finally,
traverse the drawing in opposite direction starting at the last
direction. This
means that all directions are reversed from R to L, and from L to R .
Furthermore, note that the clockwise rotation of the drawing is
restored. Due
to the anti-symmetry of *f*(R,L), the
array becomes [ R *f*(R,L) ]^{6},
being the array of the figure with D.

A recipe can
be
decomposed in one or more chunks R^{p}L^{q},
where R^{p}
denotes p times direction R and L^{q} denotes q times
direction L. The values p
and q depend on the input numbers N and D. Define the characteristic
equation N = K*D
+ E,
where K > 0 and 0 < E < D .

3 situations can be discerned

So, D = 2*E
and N = (2*K+1)*E . Since N and D are relatively prime, the
value of E must be 1, and hence D=2. The
corresponding
recipe, equal to R^{(N+1)/2} L^{(N-1)/2}
has a primitive
structure.

This
situation is equivalent to E
< D/2. The chunks look like R^{K+1} L^{K}
, or R^{K}
L^{K+1}, or R^{K} L^{K}
. Their multiplicities can be
derived by comparing multiples of D with the boundaries N and 2*N . The
values
of the multiplicities are respectively (E+1)/2, (E-1)/2, and (D/2-E) .

In
this situation, equivalent to E
> D/2, the chunks look slightly different, namely R^{K+1}
L^{K+1},
or R^{K+1} L^{K} , or R^{K}
L^{K+1} . For
simplifying the formulas we introduce the variable F := D-E . The
multiplicities of the chunks are then respectively (D/2-F), (F+1)/2,
and
(F-1)/2 .

For all 3 situations can be easily verified that the recipe contains N directions, and that the number of R directions is 1 more than the number of L directions.

Figures with
small
values for N and D are quite simple, comparable to situation a). On the
other
hand, figures with big values may become fairly complex. But one can
observe
that such complex figures have roughly simpler forms with some small
pattern on
top of it. In the sequel we will show how complex figures relate
mathematically
to simpler figures.

Consider
situation
b) at the Analysis section. The chunk R^{K}
L^{K} can be
considered as a small pattern inside the figure. The position
before and after drawing this pattern might be changed, but the
orientation
remains the same. However, the other 2 types of chunks do change the
orientation to the right (for R^{K+1}
L^{K}) or to the
left (for R^{K}
L^{K+1}). A new,
reduced figure can be constructed by ignoring the chunks R^{K} L^{K}, and by
replacing chunk R^{K+1}
L^{K} with a
single direction R,
and similarly replacing R^{K} L^{K+1} with L.
This new
figure has a recipe with N’ = E directions.

We will
prove,
with some geometrical support, that the new denominator D' equals D mod
(2*N’),
and that the replaced chunks correspond to the recipe based on pair
(N’, D’).

Consider a 2-dimensional
coordinate
system with a horizontal x-axis and a vertical y-axis. Define the points
(t*D, t*D) where t
runs from 0 to
N
. The
first N points
correspond to the points for constructing the recipe. All these points
lie on a
straight line at equidistant pieces. Along
the x-axis we focus on multiples of D.
Therefore, we can scale the points to (t, t*D). Along the y-axis we
focus on
multiples of N. Also this axis is scaled, but now by a factor N,
yielding
points (t, t*D/N) .
The points still lie on a straight line at equidistant pieces running
from (0,0) to (N,D).
(Note the
analogy of drawing a line on a graphics display.) Consider the D rows
between
coordinates y and y+1 where y runs
from 0 to D-1. Each row covers
either K points
or K+1 points from
the line. A row with
even y-coordinate
contains
points that yield an R direction, and a row
with odd y-coordinate contains points
yielding an L direction. An even row
and an odd row together relate to a chunk;
so, it
is clear that a recipe has D/2 chunks.

The rows cut
the line in
equal parts. Each part has a length along the x-axis of N/D = K + E/D . The right hand
side has
2 terms: K is the minimum number of points that are always present in a
row; the term E/D is
responsible for the (K+1)^{th}
points after accumulation of some rows.
Considering N = N(K) as a function of K, the row location of the
additional
point does not depend on K, because E/D and K are independent. So, we
can take
K=0, and consider the problem of the E additional points (t, t*D/E)
that are
located equidistant on a line from (0,0) to (E, D). Now, the line is
transformed, such that from each point the y-value t*2 is subtracted.
This is
possible since E<D/2 . All the transformed points remain
equidistant at a
straight line. Furthermore, a point at an even row lands again
in an even row, and the
same holds for the odd rows. So, the directions of the points are
preserved.
The end coordinate of the line becomes (E, D-2*E) . The transformation
is
repeated until the end coordinate becomes (E, D mod (2*E)), being the
end
coordinate (N’, D’) of the reduced line. The
configuration of the line from
(0,0) to (N’, D’) is analoguous to the
configuration of the original line from
(0, 0) to (N, D) . Therefore, we conclude that the reduced line
corresponds to
a figure based on the numbers N’ and D’.

Now, consider situation c) being a bit trickier because the reduced number of directions N’ equals (F+1)/2 + (F-1)/2 = F . We will show that the reduced value D’ equals D mod (2*F). For this proof the line configuration is transformed extensively. As in situation b) the line can be reduced to: (0, 0) -> (E, D) . Subtract the line (0, 0) -> (E, 2*E), so that all directions are preserved. This gives (0, 0) -> (E, D-2*E) with an end point below the x-axis. So, add the constant 2*E-D to all y-coordinates yielding (0, 2*E-D) -> (E, 0) . Applying a mirror transformation with respect to x = E/2 results again in a line through the origin: (0, 0) -> (E, 2*E-D). Since E> 2*E-D we can reduce this line, just as we reduced the original line by subtracting D from N . This gives the line (0, 0) -> (D-E, 2*E-D). From the endpoint's y-coordinate we can subtract multiples of 2*(D-E) . Since we can also add once 2*(D-E), the y-coordinate can be reduced to D mod (2*(D-E)) = D mod (2*F).

The conclusion is that we can reduce a figure with N and D to a reduced figure with N’ and D’ as follows. Define E = N mod D, so that:

if E < D/2, then N’ = E and D’ = D mod (2*N’) if E > D/2, then N’ = D-E and D’ = D mod (2*N’) otherwise no reduction is possible.

Reducing a
figure
can be done repetitively. Therefore, we speak of so called generations.
Reducing a figure leads to a lower generation. After a finite number of
reductions the lowest generation (a primitive structure) has been
reached.

On the other
hand,
a figure can be designed by building higher generations from a given
initial
pair (N, D) . Denote the next higher generation figure by
(N”, D”) with accompanying
E" and K" . There are 2 possibilities. Firstly assume E”
< D”/2 .
In that case E” = N, and D” = D + s * 2*N for any
positive integer s, since E”
< D”/2 is always satisfied. An arbitrary positive
integer K” can be chosen
so that N” = K” * D” + E” .

Secondly,
assume
E” > D”/2. Then, again D” = D + s
* 2*N for any positive integer s, because
E” = D” - N will satisfy E” >
D”/2 . And again for any positive integer K”
holds N” = K” * D” + E” .

For example, take as lowest generation the figure based on (5,2), a next higher generation is the figure based on (29,12),

.... and
again a next higher generation is the
figure based
on (309,70) .

Building higher generations can be done repetitively. When using the same values for K" and s in each generation, the figure gets the appearance of a fractal !

The
procedure of
computing directions and drawing a figure can be generalised to
(positive)
irrational numbers. However, the problem is then that these figures
have an
infinite size. So, a figure can only be drawn partly after computing a
finite
number of directions.

The formula
is
similar to the rational numbers: N = K * D + E , where N, D and E are
positive
irrational numbers, K is a positive integer, and 0 < E <
D . In principle
D < N ; bigger values of D can be transformed just as for the
rational
numbers:

- Values of D in the range N < D < 2*N can be transformed to D' = 2*N-D; the figure based on D is mirrored with respect to the figure based on D' (apart from the first direction).
- Values of D bigger than 2*N can be transformed to D' = D mod (2*N)

The rules
for
reduction are similar as for the rational numbers.

A figure can
be
reduced to remove the "noise" of the higher generations. Because of
the irrational numbers a reduction process newer ends. A figure based
on
irrational numbers can be approximated for gaining insight, as follows.
Reduce
the figure for a few generations, and store the values of K and s .
Replace the
(reduced) values of N and D at the lowest generation by resembling
integers. And
then build up the higher generations again using the stored values of K
and s.
For example the pair (π, 1) can be approximated by (3230883,
1028422) .

Because
of the
usage of irrational numbers we
can divide both sides of the characteristic equation
by the same value without any further consequences. An advantage for
doing such
a division is to scale the numbers to convenient values. The equation
can
always be scaled such that D becomes 1 . In that situation, we define
the
numbers as being normalised.

The
relationship
between a pair (N,D) and a reduced pair (N’, D’)
can be rearranged according to
the structure of a continued fraction (CF) . Four situations can be
distinguished. We start again with the characteristic equation: N = K *
D + E .

Case 1 : E
<
D/2

Reduction : N’ = E and D’ = D mod( 2*N’) = D - 2 * s * N’

Case 1A: D’ < N’

_{}

Case 1B: D’ > N’

_{}

Case 2 : E
>
D/2

Reduction : N’ = D - E and D’ = D mod(
2*N’) = D - 2 * s * N’

_{}

Case 2B: D’ > N’

_{} with
D” =
2*N’ - D’

As already
mentioned above, the possibility exists to generate fractal figures.
The
easiest way to derive a fractal is by reducing a pair (N,D) such that
the
reduced pair (N’,D’) is equivalent to (N, D); i.e.,
the normalised values of
(N, D) and (N’,D’) are equal. Two situations can be
discerned depending on the
size of E. Firstly, consider E < D/2. Then N’ = E and
D’ = D-2*s*E . Define
the ratio δ := N/D . Demanding that δ must equal
the normalised value of
(N’,D’) leads to the quadratic equation with
(positive) solution:

Secondly,
consider
E > D/ 2 . In that case N’ = D-E and D’ =
D-2*s*(D-E) . This leads to
another quadratic equation with as (positive) solution:

For example,
take
in the latter case: K=1, s = 1, yielding δ = ( 1 +
sqrt(5) )/2, being the
golden ratio. Note that building the generations starting with the
triple (N=3,
D=2, E= 1) results in numbers of the Fibonacci sequence.

Let's take another example, namely K=7, s=1, E > D/2. This leads to the following stunning results:

generation 2, with N=3809, D=510; and

generation
3, with
N=60705, D=8128.

At each
generation the plane is partly filled with basic,
hexagonal tiles with an increasing snowflake being left
uncovered.

You can also
view these figures with improved resolution in SVG format: 3809_510
(110 kB) , generation 3 60705_8128
(1.8 MB). Note that for watching these
figures, your browser needs an SVG plug-in. Alternatively, you can
download the SVG files ( 3809_510.svg
and 60705_8128.svg
)
and view them with an SVG-viewer, like the open source Inkscape program .

For example, N=143, D=40, shape=5 yields :