The full, mathematical depths of the work below is plumbed elsewhere, on the Gap Theory page. But we should take a moment to introduce it anyway. Given a rational r between 0 and 1, it can be expressed as a continued fraction:

r = 1 / (a_{1} + 1 / (a_{2} + 1 / (a_{3} + ...)))

This expression can be easily manipulated; this page shows expressions involving

w = 1 / (a_{1} + z_{1} / (a_{2} + z_{2} / (a_{3} + ...)))

where the z's are assorted functions of sine and cosine.

**Csn**
This shows a scatterplot of (x,y) pairs, with the x's & y's
coming from continued fractions, with z of the i'th term being
(1+cos(omega*i)) or (1+sin(omega*i)) respectively.
All values of omega between 0.0 and 2*pi are equally represented,
and account for the cyclic structures. The omega=0.0 values
lie roughly on the diagonal.

**Cycle**
This shows a single "cycle" of the above, with r ranging
from 1/2 to 2/3. Note that all rationals in this range have a
one in the first two terms of thier continued fraction expansion.
In this, and all of the pictures, the colors represent the
"measure": how often a small region (pixel) is visited by
the function. Black=never, blue=rarely, green=sometimes,
red=often.

**Far Cycle**
As above, except that the arguments to sine and cosine are not
i*omega, but f(i*omega), where f is the farey number mapping, and omega
ranges from 0.0 to 2 Pi.

**Fnu**
As above, except that the arguments to sine and cosine are not
f(i*omega), but 2*pi*f(i*nu), where f is the farey number mapping, and
nu ranges from 0.0 to 1.0.

**Three Far**
As above, except that the arguments to sine and cosine are not
2*pi*f(i*nu), but 2*pi*f(3^i *nu), where 3^i is 3 raised to the i'th power.
Note that although the derivative of the farey map vanishes at all
rationals, it's appearent slope is greatest near 1/3 and 2/3's (and
the map is the flatest near 0, 1 and 1/2). The powers-of-three
scaling used to generate this figure pairs the most rapidly changing
parts of the farey map to the flatest, resulting in the "loops"
evident in this figure.
Note that the figure appears to almost tile
... but not quite. Note other suggestive horizontal and vertical
edges.

**Far Omega**
As above, except that the arguments to sine and cosine are not
2*pi*f(3^i *nu), but f(3^i * 2*pi * nu).

c(i) = 1 / (a(i+1) + z(i+1) / (a(i+2) + z(i+2) / (a(i+3) + ...)))gives us yet another quantity to play with.

**Rat**
Just as in all of the figures above, this is a scatterplot of cosines
vs. sines. This time, though, c(i) is used:

z(i) = 1.0 + cosine (2*pi*nu*c(i)) for the x coords, and z(i) = 1.0 + sine (2*pi*nu*c(i)) for the y coords.

z(i) = 1.0 + cosine (2*pi*nu/c(i)) for the x coords, and z(i) = 1.0 + sine (2*pi*nu/c(i)) for the y coords.

DrawDrips () { for (int j=0; j < N; j++) { float r = j/N; ContunuedFrac c = ComputeContinuedFracOfReal (r); float x = MangledContinuedFrac (c, cosine); float y = MangledContinuedFrac (c, sine); AssignColor (r); DrawPoint (x,y); } }A detailed presentation of the algorithms is presented on the Gap Theory page.

Copyright (c) 1996, 1997 Linas Vepstas

The Drip Drop Room
by Linas Vepstas is licensed under a
Creative Commons
Attribution-ShareAlike 4.0 International License.