**GeoGebra Constructions in the Poincaré Disc**

The Poincaré disc is the interior of a circle. When doing hyperbolic geometry using the Poincaré disc model, all points are in the Poincaré disc, i.e. they are inside a circle. Since infinity is at the circle, let's call it the circle at infinity, \(C_\infty \). A geodesic through two points is an arc through the points that is perpendicular to \(C_\infty \). If two points are on a diameter of \(C_\infty \), that diameter is the geodesic through the points. A geodesic is the hyperbolic version of a line in Euclidean geometry. Two hyperbolic lines (geodesics) that do not intersect, are parallel. Given a hyperbolic line and a point not on it, there are infinitely many hyperbolic lines through the point that are parallel to the given hyperbolic line.

When doing hyperbolic geometry using the Poincaré disc model, angles are measured the same way as in Euclidean geometry, but distances are not.
An angle between two geodesics that intersect, is measured as the angle between the tangent lines at the intersection point.
The Euclidean length of an arc however, does **not** correspond to the hyperbolic length. A geodesic has a finite Euclidean
arc length, but it is an infinitely long hyperbolic line.

We will make basic hyperbolic tools as GeoGebra constructions and then use them to make basic hyperbolic ruler and compass constructions. To make it easy, the unit circle centered at the origin will be used as \(C_\infty \) in all constructions.

In the static case, where the points do not move, it is fairly easy to make hyperbolic constructions. In the dynamic case however, the constructions should pass the dragging test. For that reason it is often necessary to use the GeoGebra If-command and the GeoGebra IsDefined-command.

The basic construction used when constructing geodesics is inversion in circle. Some of the properties discussed on the previous page is summarized here.

Let \(C_\infty\) be the circle defining the Poincaré disc and let \(O\) be its center.

- A circle \(c\) through a point \(A\) is perpendicular to \(C_\infty\) if and only if the inverted point \(A'\) lies on \(c\).
- Let \(M\) be the midpoint of \(A\) and \(A'\). A circle through \(A\) having \(M\) as its centre is perpendicular both to \(C_\infty\) and to the ray through \(O\) and \(A\).
- Let \(A\) and \(B\) be points on the Poincaré disc and let the points \(P\) and \(Q\) be the endpoints of the geodesic through \(A\) and \(B\). Then the hyperbolic distance \(d(A,B)\) between \(A\) and \(B\) is defined by \[ d(A,B) = |\ln(A,B; P,Q)|=\left|\ln\left(\frac{AP \cdot BQ}{BP \cdot AQ}\right)\right| \]
- Circle inversion in a geodesic preserves angles and hyperbolic distances.

Let \(A\) and \(B\) be points in the Poincaré disc and let the points \(A'\) and \(B'\) be their inverse points in \(C_\infty\). We need a circle through \(A\) and \(B\) that is perpendicular to \(C_\infty \).

When constructing a geodesic through A and B, any of the reflected points A' or B' can be used to define a circle. If one of the points has coordinates (0,0), use the other point. (The origin is reflected to infinity which, in this context, is an undefined point.)

To construct a geodesic through points \(A\) and \(B\):

- Make two points A and B such that the distance to the origin is less than one for both points.
- Construct the reflected point A':
`Reflect(A,Circle((0,0), 1))`

- Construct the reflected point B':
`Reflect(B,Circle((0,0), 1))`

- Create a circle c_1 through the points A and B, and one of the reflected points:

`c_1 = If(A==(0,0), Circle(A, B, B'), Circle(A, A', B))`

If A is the origin, the three defining points are collinear, and a line is constructed. - Make the intersection points between c_1 and the unit circle:
`Intersect(c_1,Circle((0,0), 1))`

Rename the intersection points to P and Q. - Use the tool
`Circumcircular Arc through Three Points`

on P, A, and Q; to construct the hyperbolic line hline.

Hide the label hline. - Create a tool HypLine (hyperbolic line) that has hline as an output object and A, B as input objects.

If a unit circle is created and then used when constructing the geodesic, it is not possible to make a GeoGebra tool without using the unit circle as input object. For that reason all constructions using the unit circle should be entered in the input bar.

A hyperbolic segment between \(A\) and \(B\) is the arc along the geodesic through \(A\) and \(B\). If either \(A\) or \(B\) is
the origin, the hyperbolic segment is the Euclidean segment between \(A\) and \(B\). The tool
`Circumcircular Arc through Three Points`

must be used since there might not be a centre point of the circle. A third point
is needed in order to define the arc. Let hline be the geodesic between \(A\) and \(B\), and make the construction:

- Construct a ray r_1 from the origin:
`r_1 = Ray((0,0), Midpoint(A,B))`

- Construct the intersection point I_1 between r_1 and the hyperbolic line hline

(if A, B and the origin are collinear, I_1 is not defined). - Make a point I_2:
`I_2 = If(IsDefined(I_1), I_1, Midpoint(A, B))`

- Make a circumcircular arc hseg through A, I_2 and B. Hide the label hseg.
- Create a tool HypSegment that has hseg as an output object and A, B as input objects.

When constructing a ray through \(A\) and \(B\), with \(A\) as a starting point, we cannot use the previously constructed endpoints
of the geodesic, the points \(P\) and \(Q\). Intersection points between circles don't have any particular orientation.
Depending on the position of \(A\) and \(B\), we either need `CircumCircularArc[A, B, P]`

or
`CircumCircularArc[A, B, Q]`

. Instead of using \(P\) or \(Q\), start by making an arc that is guaranteed
to have \(A\) as one endpoint and the other endpoint outside of \(C_\infty\). If \(B\) is not equal to \(O\), the
inverted point \(B'\) will do. Otherwise \(A\) and \(B\) lies on a diameter, by reflecting the inverted point \(A'\) in
\(O\) we get a point that will do.

When GeoGebra makes an intersection with an arc, two points are created but only one is seen. In order for the construction to be dynamic, and always work, both intersection points must be considered.

- Reflect A' in the origin to a point A'':
`A''=Reflect(A', (0,0))`

- Make the first arc a_1:
`a_1 = CircumcircularArc(A, B, If(IsDefined(B'), B', A''))`

- Make the first intersection point I_3:
`I_3 = Intersect(a_1, Circle((0, 0), 1), 1)`

- Make the second intersection point I_4:
`I_4 = Intersect(a_1, Circle((0, 0), 1), 2)`

Move the points around, either I_3 or I_4 will always be defined. - Make the final arc hray:
`hray = CircumcircularArc(A, B, If(IsDefined(I_3), I_3, I_4))`

Hide the label hray.

- Create a tool HypRay that has hray as an output object and A, B as input objects.

Make four distances and then use the hyperbolic distance formula on them

`ap = Distance(A, P)`

`aq = Distance(A, Q)`

`bp = Distance(B, P)`

`bq = Distance(B, Q)`

- Make the distance dist:
`dist = abs(ln(ap bq / (bp aq)))`

- Create a tool HypDistance that has dist as an output object and A, B as input objects.

It can be shown that hyperbolic circles in the Poincaré disc have the same form as Euclidean circles, but not the same centre. To construct a circle through \(B\) that has a point \(A\) as its hyperbolic centre, we need to find the centre of the corresponding Euclidean circle. All hyperbolic lines through the hyperbolic centre, must be perpendicular to the circle. One such line is the geodesic through \(A\) and \(O\). If \(B\) is not collinear with \(A\) and \(O\), construct the line through \(B\) that is tangent to the geodesic through \(A\) and \(B\). The intersection of the tangent line and the line through \(A\) and \(O\), is the Euclidean centre.

- Make a line l_1 through A and O:
`l_1 = Line(A, (0, 0))`

- Use the tool
`Tangents`

on B and the geodesic hline, to construct a line l_2. - Find the intersection I_5 between l_1 and l_2.

When \(B\) is collinear to \(A\) and \(O\), the point \(I_5\) is undefined. In this case we need another way to find the Euclidean centre. This is where the hyperbolic distance is needed.

Assume that \(A\), \(B\) and \(O\) are collinear, and let the endpoints of the geodesic through \(A\) and \(B\) be \(P\) and \(Q\).

Let \(c\) be the circle through \(A\) that has the midpoint \(M\) between \(A\) and \(A'\) as its centre. \(c\) is perpendicular to \(C_\infty \) and to the line \(b\) through \(A\) and \(O\). Reflect \(B\) in circle \(c\) to a point \(B'\). The endpoints \(P\) and \(Q\) to the geodesic through \(A\) and \(B\), are also the endpoints to the geodesic through \(A\) and \(B'\). Since the cross ratio is preserved when reflecting in a circle, we have that \(d(A,B) = d(A, B')\). Hence, the midpoint between \(B\) and \(B'\) is the Euclidean centre. In GeoGebra, do this:

- Make the circle c_2:
`c_2 = Circle(Midpoint(A, A'), A)`

- Reflect B in c_2 and rename the resulting point to B''.
- Make a point:
`Mid = If(IsDefined(I_5), I_5, Midpoint(B,B''))`

- Make the hyperbolic circle hcircle:
`hcircle = If(A == (0,0), Circle((0, 0), B), Circle(Mid, B))`

Hide the label hcircle. - Create a tool HypCircle that has hcircle as an output object and A, B as input objects.

No construction is needed. The tool `Reflect Object in Circle`

can be used.

If you use the tool `HypSegment`

to construct two hyperbolic segments c and d using four points A, B, C, D; you can then make the intersection point E between the segments. If you aftwerwards move the points A, B, C, D; you may notice that a second intersection point F is created. If you look in the algebra view, you can see that either E or F is undefined.

The reason for this is that the intersection point is created as an intersection point between the two corresponding circles and those have two intersection points.

This means that you cannot use the point E that you created aftwerwards if you move any of the points A, B, C, or D. It may well be that E is undefined.

To solve the problem you must construct both intersection points E and F and use the point that is defined at any given moment.

Make the intersection point E as the first intersection point by writing: `E = Intersect(c, d, 1)`

Make the intersection point F as the second intersection point: `F = Intersect(c, d, 2)`

Hide both E and F and make the intersection point you're going to use as: `G = If(IsDefined(E), E, F)`

Since many hyperbolic constructions are made in a similar way as the Euclidean counterpart, we will go through the most basic Euclidean constructions using a ruler and a compass.

The first book of Euclid's Elements starts with a number of definitions and a number of postulates. The first postulate is:

To draw a straight line from any point to any point.

This should be read as:

It is possible to draw a straight line from any point to any point.

The second and third postulates state that it is possible to draw a finite line and it is possible to draw a circle with a given centre and a given radius.

The tools provided by these three postulates can be interpreted as using a ruler and a compass without any gradings, i.e. the tools cannot be used to measure in specified units, only to draw. Having drawn a circle using the compass, it is possible to move the compass and draw another circle with same radius as the first circle.

In theory there are no restrictions on how long the ruler is and no restrictions on how large circles you can draw using the compass.

The first proposition in Euclid's Elements is:

To construct an equilateral triangle on a given finite straight line.

Given a blue segment between two blue points, an equilateral triangle is constructed like this:

From the construction we get the three segments have equal length, hence the triangle is equilateral. Other constructions are not so obvious and require proofs of various length.

We will show two basic constructions and prove them.

The angle between two rays with a common endpoint is bisected by following construction

where \( c \cong d \cong e \).

Proof

From the construction we know that \( AB = BD = AC = CD \).

Consider triangles \( \bigtriangleup ABD \) and \( \bigtriangleup ACD \). The side \( AD \) is a side in both triangles and therefore the SSS-criterion for congruent triangles holds. Hence \( \angle BAD = \angle CAD \).

The proof of next construction is somewhat longer.

Construction 2 ‐ Bisect segment

A segment is bisected by following construction

where \(E\) is the point bisecting \(AB\).

Proof

From the construction we know that \( AC = AD = BC = BD \). Furthermore \(CD\) is a side in both \( \bigtriangleup CAD \) and \( \bigtriangleup CBD \), and \(AB\) is a side in both \( \bigtriangleup ADB \) and \( \bigtriangleup ACB \). The SSS-criterion gives us that \( \bigtriangleup CAD \cong \bigtriangleup CBD \) and \( \bigtriangleup ADB \cong \bigtriangleup ACB \).

Consider triangle \( \bigtriangleup CAD \). We can use the isosceles triangle theorem and deduce that \( \angle ADC = \angle ACD\). We can also use the isosceles triangle theorem for \( \bigtriangleup CBD \) and deduce that \( \angle BCD = \angle BDC \). Since \( \bigtriangleup CAD \cong \bigtriangleup CBD \) we have shown that \( \angle ADC = \angle ACD = \angle BCD = \angle BDC \).

Consider triangle \( \bigtriangleup ADB \). We can use the isosceles triangle theorem and deduce that \( \angle ABD = \angle BAD\). We can also use the isosceles triangle theorem for \( \bigtriangleup ACB \) and deduce that \( \angle ABC = \angle BAC \). Since \( \bigtriangleup ADB \cong \bigtriangleup ACB \) we have shown that \( \angle ABD = \angle BAD = \angle ABC = \angle BAC \).

Next consider the four smaller triangles \( \bigtriangleup AED \), \( \bigtriangleup BED \), \( \bigtriangleup AEC \) and \( \bigtriangleup BEC \). We can use the ASA-criterion to deduce that \( \bigtriangleup AED \cong \bigtriangleup BED \cong \bigtriangleup AEC \cong \bigtriangleup BEC \). Hence \( AE = BE \).

Note that **Construction 2** can also be used to construct a perpendicular bisector.

Since the proofs of the congruent triangle criterions and the isosceles triangle theorem do not use the parallel postulate, the two constructions must also hold in non-Euclidean geometry, as long as the non-Euclidean ruler and compass have the same functionality as Euclidean ruler and compass.

When making a ruler and compass construction using GeoGebra, you are only allowed to use the tools that corresponds to the tools used in classical geometry, and GeoGebra-specific tools for movement. The allowed tools are:

Move, Point, Intersect, Line, Segment, Ray, Circle with Centre through Point, Compasses, Move Graphics View.

When making the hyperbolic constructions you will need hyperbolic tools for making a: line, segment, ray, distance, and circle. You can either make them yourself by following the instructions in the text or copy the activity Basic hyperbolic tools. You must also use the regular GeoGebra tools: Point, Intersect, and Reflect about Circle.

Exercises 1 and 2 are about Euclidean geometry. Exercises 3-7 are about hyperbolic geometry using the Poincaré disc model. Exercises 8 and 9 are about hyperbolic geometry using the Poincaré halfplane model.

No proofs are needed for the hyperbolic constructions since the proofs of their Euclidean counterparts hold.

Euclidean construction of a perpendicular line through point on a line.

- Given a line \(l\) and a point \(A\) on the line, construct a line through \(A\) perpendicular to \(l\).
- Prove your construction.

The construction:

Euclidean construction of a perpendicular line through point not on a line.

- Given a line \(l\) and a point \(A\) not on the line, construct a line through \(A\) perpendicular to \(l\).
- Prove your construction.

The construction:

GeoGebra-construction of a hyperbolic perpendicular bisector

This construction is exactly like the Euclidean ruler-and-compass-construction, but a hyperbolic line is used as ruler, and a hyperbolic circle as compass.

Make two points A and B whose distances to the origin is less than one. Use the hyperbolic tools to construct a perpendicular bisector.

Create a tool `HypPerpendicularBisector`

that has your result as an output object and A, B as input objects.

GeoGebra-construction of a hyperbolic midpoint

For this construction you will need `HypPerpendicularBisector`

constructed in Exercise 3.

The hyperbolic midpoint \(M\) between two points \(A\) and \(B\), is the intersection between the hyperbolic line through \(A\) and \(B\) and the hyperbolic perpendicular bisector. In order for the midpoint to be dynamic, it must be constructed using the Method for constructing an intersection point between two geodesics.

Make two points A and B whose distances to the origin is less than one. Construct the hyperbolic midpoint between the points.

Create a tool `HypMidpoint`

that has your result as an output object and A, B as input objects.

GeoGebra-construction of a hyperbolic perpendicular line

For this construction you will need `HypPerpendicularBisector`

constructed in Exercise 3.

Make three points A, B and C whose distances to the origin is less than one. Your task is to construct the hyperbolic line that goes through C and is perpendicular to a hyperbolic line through A and B.

The GeoGebra tool `Perpendicular Line`

uses a line as one of its input objects. When making a hyperbolic perpendicular line, the two points defining the hyperbolic line must be used as input objects.

In the Euclidean case, you must place a point on the line and make a circle with C as centre through the newly placed point. In the hyperbolic case you can start by making a hyperbolic circle with C as centre through A. Then construct **both** intersection points between the circle and a hyperbolic line through A and B. Now only one final step is needed to make to make the perpendicular hyperbolic line.

Create a tool `HypPerpendicularLine`

that has your result as an output object and C, A, B as input objects. When making the tool you can move C to the top of the list of input objects by using the arrows.

GeoGebra-construction of a hyperbolic angle bisector

- Make three points A, B, C.
- Use the tool
`HypRay`

on A and B to make a ray hray. - Use the tool
`HypRay`

on A and C to make a ray hray2.

Continue by making constructions similar to the Euclidean case but remember the Method for constructing an intersection point between two geodesics.

Create a tool `HypAngleBisector`

that has your result as an output object and B, A, C as input objects (in that order).

GeoGebra-construction of a hyperbolic compass

For this construction you will need `HypPerpendicularBisector`

constructed in Exercise 3.

In the Euclidean case we could make a copy of a given circle as follows: Given a circle \(c\) with \(A\) as its centre and \(B\) as a point on the circle, a circle \(d\) can be constructed with a given centre \(C\) such that \(d\) the same radius as \(c\) by constructing the perpendicular bisector \(l\) between \(A\) and \(C\), and then reflecting \(B\) in \(l\).

Follow this line of reasoning to make a hyperbolic compass.

The GeoGebra tool `Compasses`

makes a copy of a circle that can then be moved anywhere. To make a hyperbolic version,
Let the points \(A\) and \(B\) define the hyperbolic circle to be copied, where \(A\) is the centre of the circle. Let \(C\)
be the position of the new centre point.

Create a tool `HypCompass`

that has your result as an output object and A, B, C as input objects.

GeoGebra-construction of a hyperbolic line using the halfplane model.

For simplicity assume that the halfplane is defined by \(y> 0\) in the GeoGebra coordinate system.

- Make two points A and B above the \(x\)-axis. Construct a circle through A and B perpendicular to the \(x\)-axis. Make the intersection points with the \(x\)-axis and use the tool Circumcircular Arc to construct a hyperbolic line d. Hide all auxilliary objects and drag A and B to make sure your construction is correct.
- Explain why your construction in a) is correct.
- Show the GeoGebra grid and place the points A and B on the grid on a vertical line, so \(d\) is shown as "undefined" in the algebra view. Construct a ray g from the \(x\)-axis through A and B.
- Construct an object that is d if d is defined and g otherwise. Make a tool of this object having A and B as input objects.

GeoGebra-construction of a hyperbolic circle using the halfplane model.

For this construction you will need the hyperbolic line tool constructed in Exercise 8.

Use a method similar to the instruction Construct a hyperbolic circle to construct a hyperbolic circle in the halfplane model.

Chaim Goodman Strauss - Compass and Straightedge in the Poincaré disk (pdf)

G. Eric Moorhouse - Foundations of Geometry, Inversive Plane Geometry (pdf)

Kenji Kozai & Shlomo Libeskind - Circle Inversions and Applications to Euclidean Geometry (pdf)

Marvin Jay Greenberg - Euclidean and Non-Euclidean Geometries, Development and History