Hilbert's Square-Filling Curve

Hilbert squarefill 001
Hilbert squarefill 001

In 1890, for the first meeting of the German Math Society, Hilbert had constructed a continuous curve whose image is a filled square. Although the double points of that curve were known to be dense, Hilbert constructed a sequence of polygonal approximations without double points. (A double point of a parametrized curve c(t) is a point such that t1≠t2 but c(t1) = c(t2).)

In 1890 the limit curve was the spectacular thing. Today the finite approximations without double points are taught to computer graphics students, because these polygons run through the square in a very useful way.

hilbert square ends 001
hilbert square ends 001
Hilbert's iteration starts with any curve inside the square, starting at the left bottom corner and ending at the right bottom corner. This curve is scaled down by a factor 1/2 and four copies of this smaller curve are put together to make a new curve from the left bottom corner to the right bottom corner. This process is repeated. We show a sequence in which the end points of the initial curve are emphasized, because this allows us to see how the double points develop. In Hilberts original construction he took the initial curve not quite to the end points, thus avoiding double points in the finite approximations.
hilbert square wild 001
hilbert square wild 001
The limit curve does not depend on the initial curve. It is determined by the iterates of the left bottom and right bottom corners and, of course, by the iteration construction. Here we iterate a curve which is a bit wilder and also does not quite reach the end points. Therefore we get (as in Hilbert's case) finite approximations without double points. The initial curve is not symmetric so that one can see which copies are only translated and which are mirror images.
hilbert square ee2 001
hilbert square ee2 001
One can modify the Hilbert iteration to get a family of limit curves which get more and more complicated. Mathematically speaking: the Hausdorff dimension (of the limit, not of the finite approximations) increases from 1 to 2.
hilbert square ee6 001
hilbert square ee6 001
The parameter change is the same as in the previous sequence, but we do 6 iterations.
hibert square origmorph 001
hibert square origmorph 001
The same parameter change again, with the original Hilbert initial curve.

Hilbert_SquareFillCurve.pdf