Realizing Right-Angled Hyperbolic Pentagons in the Upper Half Plane

From abstract side-length data to Möbius-placed coordinates.

In a previous note we described the moduli space of right angled hyperbolic pentagons, which are uniquely determined by a pair of adjacent sides a,ba,b which must satisfy sinhasinhb>1\sinh a\sinh b>1. In fact, we worked out the remaining side lengths c,d,ec,d,e in terms of these two:

coshd=sinhasinhb\cosh d = \sinh a\sinh b sinhc=coshasinh2asinh2b1\sinh c = \frac{\cosh a}{\sqrt{\sinh^2a\sinh^2b-1}} coshe=coshasinhbsinh2asinh2b1\cosh e =\frac{\cosh a\sinh b}{\sqrt{\sinh^2a\sinh^2 b-1}}

Having this description in hand, we take it one step further and for each point in moduli space, construct an explicit such pentagon in the upper half plane model, where geodesics are faithfully represented by their endpoints, as an unordered pair in R:=R{}\overline{\mathbb{R}}:=\mathbb{R}\cup\{\infty\}. Having this allows one to compute right angled pentagon reflection groups, and draw beautiful images of their corresponding tilings:

PICTURE

Note we will allow ourselves to use all side lengths aea-e throughout the calculations, as we know from above this can easily be recast in terms of a,ba,b alone. For each a,ba,b only need to compute one representative right angled hexagon, and so are free to use the isometries of the hyperbolic plane to simplify the problem. Indeed, using homogenity we can take one vertex vv of the hexagon to ii, and then use isotropy to rotate it so one of the sides through ii is the unit circle. If we take this to be the side bb, then

γb{0,}\gamma_b \mapsto \{0,\infty\}

But, as HH is right angled, the other side through v=iv=i must be perpendicular to the vertical - and thus, is the unit circle. This determines γa\gamma_a:

γa{1,1}\gamma_a\mapsto \{-1,1\}

PICTURE

As the hyperbolic length of the vertical side is bb and its first endpoint is at ii, the second endpoint must lie at ebie^b i as

b=length(γb)=1?dtt=lnt1?=ln(?)\begin{align} b&=\mathrm{length}(\gamma_b)\\ &=\int_1^? \frac{dt}{t}\\ &=\ln|t|\Big|_1^?\\ &=\ln(?) \end{align}

Because this geodesic also intersects the vertical at a right angle, it is a circle centered at zero. And as it intersects the yy axis at height ebe^b it must intersect the xx axis at ±eb\pm e^b:

γc(eb,eb)\gamma_c\mapsto (-e^b,e^b)

PICTURE

Now we skip to computing the side ee. This lies on the other end of aa from the vertical geodesic, and so is the result of simply translating the vertical geodesic along the unit circle by distance bb. This is accomplished by the Mobius transformation

T=(cosha2sinha2sinha2cosha2)T=\begin{pmatrix}\cosh\frac{a}{2}&\sinh\frac{a}{2}\\\sinh\frac{a}{2}&\cosh\frac{a}{2}\end{pmatrix}

PICTURE

Applying this to the endpoints {0,}\{0,\infty\} of the vertical geodesic yields

T0=(cosh(a2)sinh(a2)sinh(a2)cosh(a2))(01)=(sinh(a2)cosh(a2))tanh(a2)T=(cosh(a2)sinh(a2)sinh(a2)cosh(a2))(10)=(cosh(a2)sinh(a2))coth(a2)\begin{align*} T_{0} &= \begin{pmatrix} \cosh \left( \frac{a}{2} \right) & \sinh \left( \frac{a}{2} \right) \\ \sinh \left( \frac{a}{2} \right) & \cosh \left( \frac{a}{2} \right) \end{pmatrix} \begin{pmatrix} 0 \\ 1 \end{pmatrix} = \begin{pmatrix} \sinh \left( \frac{a}{2} \right) \\ \cosh \left( \frac{a}{2} \right) \end{pmatrix} \rightarrow \tanh \left( \frac{a}{2} \right) \\ T_{\infty} &= \begin{pmatrix} \cosh \left( \frac{a}{2} \right) & \sinh \left( \frac{a}{2} \right) \\ \sinh \left( \frac{a}{2} \right) & \cosh \left( \frac{a}{2} \right) \end{pmatrix} \begin{pmatrix} 1 \\ 0 \end{pmatrix} = \begin{pmatrix} \cosh \left( \frac{a}{2} \right) \\ \sinh \left( \frac{a}{2} \right) \end{pmatrix} \rightarrow \coth \left( \frac{a}{2} \right) \end{align*}

Thus the geodesic ee is simply

γe(tanha2,cotha2)\gamma_e\mapsto \left(\tanh\frac{a}{2},\coth\frac{a}{2}\right)

Finally we compute the geodesic dd. This is also a translation of the vertical geodesic, but not along the unit circle, instead along γc\gamma_c, a circle of radius ebe^b in our model. We form the translation along this geodesic by conjugation: if Vb ⁣:pebpV_b\colon p\mapsto e^b p is the translation of length bb along the vertical geodesic, and HcH_c be the translation by distance cc along the horizontal unit circle geodesic. Then the Mobius transformation MM we seek is

M=VbHcVb1M = V_bH_cV_b^{-1}

PICTURE

We are interested in the image of the vertical geodesic’s endpoints under this isometry. As VbV_b is translation along the vertical geodesic, it (and hence it’s inverse as well) fixes these endpoints, so

M.{0,}=VbHcVb1.{0,}=VbHc{0,}\begin{align} M.\{0,\infty\}&=V_bH_cV_b^{-1}.\{0,\infty\}\\ &= V_bH_c \{0,\infty\} \end{align}

Using what we’ve previously learned about translation of {0,}\{0,\infty\} along the unit circle, we see

VbHc.{0,}=Vb.{tanhc2,cothc2}={ebtanhc2,ebcothc2}\begin{align} V_bH_c.\{0,\infty\} &= V_b.\left\{\tanh \frac{c}{2},\coth\frac{c}{2}\right\}\\ &=\left\{e^b\tanh \frac{c}{2}, e^b\coth\frac{c}{2}\right\} \end{align}

Thus we have it,

γd{ebtanhc2,ebcothc2}\gamma_d\mapsto \left\{e^b\tanh \frac{c}{2}, e^b\coth\frac{c}{2}\right\}

And thats it! We’ll box off the result for easy finding:

Up to isometry, the right angled hyperbolic pentagon with side lengths a,b,c,d,ea,b,c,d,e can be realized in the upper half plane by the following five geodesics: {0,},{1,1},{eb,eb}\{0,\infty\},\{-1,1\},\{-e^b,e^b\} {tanha2,cotha2},{ebtanhc2,ebcothc2}\left\{\tanh\frac{a}{2},\coth\frac{a}{2}\right\}, \left\{e^b\tanh\frac{c}{2},e^b\coth\frac{c}{2}\right\}

Code

111

//a right angled pentagon is the intersection of 5 orthogonal geodesics struct Pentagon{ Geodesic a; Geodesic b; Geodesic c; Geodesic d; Geodesic e; };

Pentagon createPentagon(float A, float B){

//unit circle
Geodesic a = Geodesic(-1.,1.);

//vertical line
Geodesic b = Geodesic(0.,infty);

//the circle at height b above unit circle
Geodesic c = Geodesic(exp(B),-exp(B));

//the circle which is translate of vertical line along unit circle by dist a
Geodesic e = Geodesic(tanh(A/2.),1./tanh(A/2.));

//the final circle is the translate of the vertical geodesic along unit circle by c, then dilation z->exp(b)z
//the computation is annoying because we need tanh(c/2) and coth(c/2) for the endpoints; but need them in terms of A and B

float cA = cosh(A);
float sA = sinh(A);
float cB = cosh(B);
float sB = sinh(B);

float cD = sA*sB;
float sD = sqrt(cD*cD-1.);

//coshC and sinhC:
float sC = cA/sD;
float cC = sqrt(sC*sC+1.);

//tanh(C/2) (using hyperbolic half angle)
float tanhC2 = sC/(1.+cC);
float eA = exp(A);

//finally!
Geodesic d = Geodesic(eA*tanhC2,eA/tanhE2);

Pentagon P = Pentagon(a,b,c,d,e);
return P;

}

← All posts