CommonSpace

Tiling the Hyperbolic Plane Using Regular Heptagons

A (2,3,7)-tiling of the hyperbolic plane consists of congruent (hyperbolic) triangles, each with interior angles π2, π3 and π7. If we see every vertex with 14 incident triangles as the center of a heptagon, then the hyperbolic plane can be tiled with congruent regular heptagons, each with interior angles 2π3. We discuss in this post how to draw a figure of this tiling.

The Poincaré Disk Model

A famous model for hyperbolic geometry is the Poincaré disk model (which is actually first discovered by Beltrami), which can be described as follows. Choose a circular disk ω with center O on the Euclidean plane. All our hyperbolic plane will be inside the interior of this disk. For any two points in the disk, the hyperbolic geodesic through these two points will be the unique arc through these points that is also orthogonal to the boundary of the disk. These geodesics are the hyperbolic analogue of straight lines in the Euclidean plane.

One advantage of this model is that, it is conformal, i.e. it preserves angles: the hyperbolic angle between two geodesics is the same as the angle between the two corresponding arcs. Therefore, the interior angles of the heptagons should also be 2π3 in this disk model.

Drawing the Geodesics

The first problem we're facing is drawing the geodesic through two points. This is equivalent as: given circle ω and two points A and B inside the circle, construct a circle γ through A and B such that ω and γ are orthogonal.

This is easily solved using inversion: choose a point P on ω, and invert with center P; denote the image of X by X. Then we're asked to construct a circle or a line γ that passes through A and B and is orthogonal to ω. This is easy by taking the center of γ to be the intersection of ω and the perpendicular bisector of AB.

There is a small technical issue here: only knowing two endpoints and the center is not sufficient for drawing an arc; we must specify which side of the circle do we want. In this case, all geodesics are arcs with angles less than π2, so we can uniquely determine the arc.

Calculating the Tiling

Reflection

If we have a cell (a heptagon) of the tiling, we would like to generate all other heptagons of the tiling. One natural way of doing this is reflecting this heptagon by its edges, generating more heptagons. Therefore, the problem here is calculating the reflected geodesic.

It turns out that reflection in the Poincaré disk model is the same as inversion in the Euclidean plane. (It's interesting to notice that inversion is sometimes just called reflection in circle.) Since we can construct the edges by the coordinates of the vertices, we can simply invert the seven vertices in one edge to get a new heptagon.

The First Heptagon

We would like to choose the first heptagon to be at the center. In this case, its edges (in the Poincaré disk model) are congruent circles, placed evenly around the disk, all orthogonal to ω, and each intersecting its neighbouring ones at an angle of 2π3, which means, each one passes through the centers of its neighbouring circles. This information greatly simplyfies the calculation.

Suppose γ is one of the circles, and it intersects ω at A and B. Then the center of γ, O, is the intersection of the tangents at A and B. We want to determine AOB. Rotate O around O by 2π7, we get another point O1. Our conditions above tells us that OO1=OA. Solving this gets us

AOB=2arcsin(2sinπ7).

At this point, we can already draw the complete tiling, by reflecting this first heptagon along its edges, and doing the same thing for all new heptagons. But one small culprit here is that some heptagons might be calculated multiple times, and we want to avoid this, especially because I want to color these heptagons by different colors.

Labelling the Heptagons

We label the heptagons appropriately to avoid repeated calculation of the same heptagon. The center one is labeled 1. The seven around it are 1.1, 1.2, to 1.7. Each of the 1.x has three neighbouring smaller heptagons, two on its "head", one on its "shoulder"; they are numbered 1.x.1, 1.x.2, 1.x.3. Drawing the heptagons in this order should avoid repeated drawing.

Here's the final result. I added a mask to form a nicer boundary.

assets/hyperbolic-tiling.svg