/hyperbolic

Hyperbolic geometry

Primary LanguageF#

Hyperbolic geometry and patterns

Hyperbolic geometry is a non-Euclidean geometry, where the only difference compared to (normal) Euclidean geometry is that the Euclidean axiom

In a plane, given a line and a point not on it, at most one line parallel to the given line can be drawn through the point. [6]

is replaced with

For any given line R and point P not on R, in the plane containing both line R and point P there are at least two distinct lines through P that do not intersect R. [7]

A hyperbolic plane can be represented by the unit disk in an Euclidean plan, the Poincaré disk model, where the straight lines are lines through the origin and circle arcs intersecting the boundary circle in 90 angles of 90 degrees. (Yes, circle arcs are lines). [8] In the Poincaré disk model the angles are the same as the if the model was Euclidean, but the distances are not the same as in Euclidean geometry. A segment closer to the bundary circle has longer hyperbolic distance than if the same piece was closer to the origin of the circle. Hence, the repeating patterns we will see on the disk will actually have the same size and actually be identical in hyperbolic geometry.

hyperbolic lines

Hyperbolic lines

The implementation

The code for drawing hyperbolic patterns in the repo is based on Dunham's code given in [1]. The following section explain this implementation.

What are p and q?

The hyperbolic plane can be tesselated (covered by polygonal tiles) in inifinite many ways. A tiling is regular if the the angles in the polygon are equal, and the sides have the same length. A [p q] tesselation is a regular tesselation where p is the number of edges in the polygons, and q are the number of polygons meeting at each vertex. The following examples will all have [p, q] = [4, 6]. How the tesselation is constructed is explained in [5], the figure below shows how the fist central polygon with six edges are cut out of the six circles around the bounding circle.

First polygon in the tesselation

First polygon in the tesselation

Simple transformations

The triangle with side along the positive x-axis in the figure below will be of special importance. Transformations along the sides of this triangle will be the building blocks of transfering the motif in the first polygon to the other polygons in the tesselation.

The essential triangle

The essential triangle

The transformations reflectEdgeBisector, reflectPgonEdge and reflectHypotenuse perform reflection across the edge on the x-axis, across the polygon edge, and across the hypotenuse respectively. This is shown on the figures below where the line segment inside this triangle is transformed with each of these reflections.

Reflection across the edge bisector

Reflection across the edge bisector

Reflection across the polygon edge

Reflection across the polygon edge

Reflection across the hypotenuse

Reflection across the hypotenuse

Putting the pieces together

Line pattern with 3 layers

Line pattern with 4 layers

References

[1] Douglas Dunhanm Hyperbolic Symmetry
[2] Douglas Dunham Creating Repeating Hyperbolic Patterns
[3] Ajit V. Datar Generating Hyperbolic Patterns for Regular and Non-regular P-gons
[4] Raymond F. Tennant Constructing Tessellations and Creating Hyperbolic Art
[5] Bill Casselman How did Escher do it?
[6] Wikipedia Playfair's axiom
[7] Wikipedia Hyperbolic geometry
[8] Wikipedia Poincaré disk model