This is documentation for Mathematica 5, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

Documentation / Mathematica / Demos / Notebooks /

The Cover Image

Making the Escher-style hyperbolic dodecahedron symbolizing Mathematica 5

Michael Trott

Copyright Michael Trott 2003

Outline of the Procedure

Step 1:

We construct a regular dodecahedron centered at the origin.

Step 2:

The faces of the dodecahedron are then subdivided into right triangles (similar to M. C. Escher's Quadratlimit work), each of which is then scaled down so that gaps are introduced between them.

Step 3:

Each triangle is further subdivided so that, when the surfaces are transformed in the next step, the resulting surfaces are relatively smooth.

Step 4:

Outlines of all triangles are constructed.

Step 5:

A radial transformation is applied to each triangle. Then each triangle is given depth by connecting it to a slightly smaller copy moved closer to the origin.

Step 1: The Regular Dodecahedron

This loads the standard package that contains primitives for rendering the Platonic solids.

Here is a regular dodecahedron.

Step 2: Dividing into Triangles

The function SolidToTriangles breaks the faces of a Platonic solid into right triangles.

Applied to the dodecahedron, here is the result.

Step 3: Subdividing the Triangles

Here is a list of triangles, that subdivide a triangle in an Escher-style way.

The function MapTo3DTriangle maps this triangulation onto all triangles of the above triangulation of the dodecahedron.

Steps 4: Triangle Edge Construction

The function TriangleBorders constructs the outlines of all triangles.

Steps 5: Radial Transformation and Thickening

The next task is to create a function for calculating the radial transformation.

The following is a plot of the function contract.

Applying contract to gives the following hyperbolic dodecahedron.

The function Hyperbolicize takes the triangle outlines in and applies the function contract. In addition, it does this with a smaller copy of and connects the edges of the resulting two hyperbolic dodecahedra.

This generates the final cover image. The edges of the triangles in are thickened and contracted.

A Variant

The above implementation can be used with other Platonic solids, radial transformations, and coloring schemes. Here it is done with a cube (hexahedron).