Content uploaded by Hiroshi Fukuda
Author content
All content in this area was uploaded by Hiroshi Fukuda
Content may be subject to copyright.
NEW GOSPER SPACE FILLING CURVES
HIROSHI FUKUDA MICHIO SHIMIZU GISAKU NAKAMURA
School of Administration and Informatics, Department of Liberal Art, Research Institute of Education,
University of Shizuoka, Nagano Prefecture College, Tokai University,
52-1 Yada, Shizuoka-shi, Shizuoka, 8-49-7 Miwa, Nagano-shi, Nagano, 2-28-4 Tomigaya, Shibuya-ku, Tokyo,
422-8526 JAPAN 380-8525 JAPAN 151-8677 JAPAN
ABSTRACT
We investigate several properties of a beautiful space
filling curve known as the Gosper curve, and try to
construct curves having the same properties. We found
17 new Gosper curves through computer searches, and an
infinite series of curves that are natural extensions of the
original Gosper curve.
KEY WORDS: Gosper curve, Space filling curves,
Fractal
1. INTRODUCTION
The Gosper curve is a space filling curve discovered by
William Gosper, an American computer scientist, in 1973,
and was introduced by Martin Gardner in 1976 [1,2]. The
Gosper curve is said to be a very beautiful and complex
monster curve because it has several special properties
that other space filling curves such as the Peano curve and
the dragon curve do not have.
In this paper, we point out several properties of the
Gosper curve and try to construct curves having the same
properties. Then, we show 17 new Gosper curves that we
found through computer searches. We also show an
infinite series of curves that are natural extensions of the
original Gosper curve.
In section 2, we describe the Gosper curve. In section 3,
we propose a construction method for new Gosper curves.
In section 4, results are shown and discussed.
2. GOSPER SPACE FILLING CURVES
The Gosper curve is a recursive curve constructed by
recursively replacing a dotted arrow, called the initiator,
by seven arrows, called generator, as shown in Fig. 1(a).
Fig. 1(b) and Fig. 1(c) illustrate the curves obtained by
replacing the initiator by generator once and twice
respectively.
(a) (b) (c)
Fig. 1 Gosper curve.
The arrows of generator in the curve obtained after
replacing the initiator to the generator any times are
located on the edge of a regular triangular lattice. The
degree of the generator arrow at the lattice point is two in
the interior of the Gosper curve and is one at the both
ends of initiator, i.e., the Gosper curve is the path from
the root to the tip of the initiator without any branches
visiting all interior lattice points. To our knowledge, the
Gosper curve is the only space filling curve to have these
properties. Therefore, in this paper we define the Gosper
curve in terms of these properties. We then try to find new
Gosper curves which satisfy our definition other than the
Gosper curve found by William Gosper. We call the
number of arrows included in the generator the size of
generator or Gosper curve itself.
3. COMPUTER SEARCH FOR NEW
GOSPER CURVES
We attach an equilateral triangle to the initiator arrow
and to the generator arrow so that the triangle has the
arrow as its edge and so that the direction of the arrow is
counterclockwise in the triangle as shown in Fig. 2 (a).
We call the equilateral triangle attached to each arrow a
“flag”.
(a) (b)
Fig. 2 Flags.
In the recursive procedure constructing Gosper curve,
the flag for the initiator is replaced by the seven flags for
the generator. The area of the flags is conserved during
the replacement. Further, the flags fill the triangular
lattice alternatively as shown in Fig. 2(b). From these
simple flag properties, the following procedure to
construct the generator of the Gosper curve can be
deduced.
(P1) Chose the size of the Gosper curve N.
(P2) Prepare an initiator arrow of length
L
and attach the
initial flag to it.
(P3) Prepare N flags with side length NL/ to be used
in the generator. The N flags should satisfy
conditions (P4) to (P7). Bellow, we call the set of N
flags “generator flags”.
(P4) The generator flags should be connected at their
vertices.
(P5) Two vertices of generator flags should coincide with
the ends of the initiator. From this condition the size
of Gosper curve is restricted to
xyyxN ++= 22 , ,...2,1,0, =yx (1)
Therefore the possible sizes of Gosper curves are
,...37,36,31,28,27,25,21,19,16,13,12,9,7,4,3=N(2)
(P6) The shape of the generator flags is symmetric under
a 3/2
π
rotation around its geometrical center.
(P7) If two coincident generator flags exist and one is
translated by a distance L in a direction parallel to
one of the three edges of a triangle in the initiator
flag, then the two generator flags should not overlap.
(P8) By taking only one edge from each flag and by using
the N edges of the generator flags, construct a path
without branches from the root to the tip of the
initiator.
(P9) Convert the edges in the path to the arrow so that the
direction of the arrow is counterclockwise in the flag.
We then obtain the generator arrow.
Using this procedure, we obtain the seven generator
flags shown in Fig.3 for 7≤N. The generator flags
which corresponds to the William Gosper’s curve is the
only generator flags satisfying conditions (P8) and (P9).
3=N 4=N 7=N
Fig. 3 Generator flags for 7≤N.
4. RESULTS AND DISCUSSIONS
As we have already mentioned, the smallest Gosper
curve obtained by the procedure given in the previous
section is the curve with 7=N found by William Gosper.
For 197
≤
<
N, there are two curves for 13
=
N
and 19
=
N. We show these curves together with their
generators and generator flags in Fig. 4 and Fig. 5,
respectively.
Fig. 4 A new Gosper curve for
N
= 13
Fig. 5 A new Gosper curve for
N
= 19.
For 3719
≤
<
N, there are seven and eight curves for
31
=
N and 37, respectively. The seven curves for
31
=
N are constructed by the three generator flags
shown in Fig.6 (31a), (31b) and (31c). Gosper curves
which have the same size can be distinguished by using
the flag and a serial number, for example (31a-1). It is
notable that five new Gosper curves can be produced
from the generator flags (31b). The curves produced from
the same generator flags have similar shapes.
(31a)
(31a-1)
(31b)
(31b-1)
(31b-2)
(31b-3)
(31b-4)
(31b-5)
(31c)
(31c-1)
Fig. 6 New Gosper curves for 31=N.
Eight curves for 37=N are constructed from the four
generator flags shown in Fig.7 (37a), (37b), (37c) and
(37d). The generator flags (37a), (37b), (37c) and (37d)
construct 1, 2, 3 and 2 curves, respectively. Although we
did not search for curves with 37>N because of the
limitation of our computer power, we expect that there
exist many big and complex Gosper curves.
(37a)
(37a-1)
(37b)
(37b-1)
(37b-2)
(37c)
(37c-1)
(37c-2)
(37c-3)
(37d)
(37d-1)
(37d-2)
Fig. 7 New Gosper curves for 37=N.
Next, we compare the three curves with sizes 7
=
N,
19=N and (37a-1). We found that the generator of the
curve for 19=N contains the generator of the curve for
7=N, and that the generator for (37a-1) contains the
generator for 19=N. Similarly, the generator flags of the
curve for 19=N are obtained by adding a layer of flags
around the generator flags of the curve for 7=N, and the
generator flags for (37a-1) are obtained by adding a layer
around the generator flags for 19
=
N. Thus the curve for
19=N and the curve (37a-1) are natural extensions of
the Gosper curve for 7=N.
It is possible to make the natural extension of the
Gosper curve for 7=N by adding a layer several times.
We explain the extension method as an example of the
curve for 37=N. First, we add a layer of flags around
the generator flags for 37=N as shown in Fig. 8. The
resulting generator consists of 61 flags. Thus we will
obtain the Gosper curve of the size 61=N. Next, we
choose the ends of initiator to be the leftmost vertex on
the button edge and the rightmost vertex, then we draw a
dotted line from the ends of the initiator to the ends of the
curve already drawn for 37=N as shown in Fig. 8.
After converting each segment of the dotted line to the
arrow, we obtain the generator of Gosper curve for
61
=
N. It is clear that bigger curves can be obtained by
continuing this procedure.
Fig. 8 Natural extension of the Gosper curve
for
N
= 61
As mentioned above, by adding n layers to the
generator flags for 7
=
N, we obtain a generator with size
133 2++= nnN ,...)3,2,1( =n. (3)
Thus we can obtain an infinite series of Gosper curve with
the size given by equation (3). The shape of the curves
obtained looks like snail.
In this paper, we pointed out several properties of the
monster curves found by William Gosper, and constructed
new monster curves having the same properties. We
found that the smallest size of the new monster curves is
13 and obtained an infinite series of natural extensions of
the Gosper curve. These new recursive monster curves are
beautiful and will be useful for computer graphics.
We should note that Gosper curve for 137
<
<N may
exist since the procedure (P1)—(P9) is not a necessary
and sufficient condition for our definition of the Gosper
curve. Finding a procedure corresponding to the necessary
and sufficient conditions and applying the procedure to
the other regular lattices are topics of future research.
REFERENCES
[1] M. Gardner, In which “monster” curves force
redefinition of the word “curve”, Scientific American
235 (December issue), 1976, 124-133.
[2] B. B. Mandelbrot, The fractal geometry, (New York ,
W. H. Freeman and Company, 1977).