Non-Euclidean Constructions in

In this section, we give an explicit listing of the hyperbolic construction
tools that have been developed in *Geometer's Sketchpad* for the three most common models of hyperbolic
geometry. The goal of this project was to complete a package of tools for automating
hyperbolic constructions in each of three models of the hyperbolic
plane: the Poincaré disk, the Poincaré half-plane, and the Beltrami-Klein
disk. At a minimum, the tools for each model allow one to do any of the
following:

- Construct a non-Euclidean line, given two points on the line.
- Construct a non-Euclidean line segment, given the endpoints of the segment.
- Measure the length of a non-Euclidean line segment.
- Calculate the measure of an angle.
- Construct the bisector of a given angle.
- Construct a perpendicular to a given line through a given point on the line.
- Construct a perpendicular to a given line through a given point not on the line.
- Construct the perpendicular bisector of a non-Euclidean line segment.
- Construct a circle, given its center and a point on the circle.
- Construct a circle, given its center and two points determining the radius of the circle.

As noted in the Background section, Alexander and
Finzer have written the scripts for the Poincaré disk, while Bennett and Peil
have developed some of the Poincaré half-plane tools. This author has
completed the scripts for the half-plane and produced the corresponding tools
for the Klein model. For the interested reader, a mathematical
description of the steps required for each of the Klein and Poincaré half-plane
model constructions is given in the file toolbox.pdf
This file is in PDF format and requires a reader such as *Adobe Acrobat*, which can be found
here.
The next section gives more detailed information on
obtaining and installing the tools.

Beltrami-Klein disk | model tools. |

Poincaré half-plane | model tools. |

Poincaré disk | model tools. |

## klein.zip |
## All the Klein model scripts in one ZIPPED package |

klnstrt.gsp
| Klein model template Geometer's Sketchpad file. |

kline.gss
| Script to construct a Klein line. |

ksegmnt.gss
| Script to construct a Klein segment. |

klength.gss
| Script to measure the Klein length of a line segment. |

kangmea.gss
| Script to measure an angle in the Klein model. |

kangbis.gss
| Script to bisect an angle in the Klein model. |

kprpon.gss
| Script to construct the Klein perpendicular through a given point on a given Klein line. |

kprpoff.gss
| Script to construct the Klein perpendicular through a given point not on a given Klein line. |

kprpbis.gss
| Script to construct the perpendicular bisector of a Klein segment. |

kcntrpt.gss
| Script to construct a Klein circle given its center and a point on the circle. |

kcntrrd.gss
| Script to construct a Klein circle given its center and two points that determine the radius. |

kpole.gss
| Script to construct the pole of a Klein line. |

kmidpt.gss
| Script to construct the midpoint of a Klein segment. |

kreflpt.gss
| Script to construct the reflection of a given point about a Klein line. |

kintcirc.gss
| Script to find the intersection point(s) of two Klein circles. |

kintlncr.gss
| Script to find the intersection point(s) of a Klein circle with a Klein line. |

kintsgcr.gss
| Script to find the intersection point(s) of a Klein circle with a Klein line segment. |

kd_to_pd.gss
| Script to map a point in the Klein disk isomorphically to its corresponding point in the Poincaré disk. |

- Mike Alexander (with modifications by Bill Finzer) has created scripts for
the ten "standard" constructions for the Poincaré disk model.
They provided inspiration for my scripts in the Klein disk and Poincaré
half-plane model and can be found here.

- For the Beltrami-Klein model, this author wrote a tool (
**kd_to_pd.gss**) that maps points in the Klein disk isomorphically to their corresponding points in the Poincaré disk. The natural isomorphism is described in Greenberg, p. 236. This author has written a corresponding tool that inverts the process (**pd_to_kd.gss**), mapping points in the Poincaré disk isomorphically to their corresponding points in the Klein disk. This tool can be found in the file pd_to_kd.zip. If you don't have access to an unzipping utility, you could download one from either Pkware or WinZip.

- Dan Bennett has created scripts for the first four constructions listed at
the top of this page (constructing lines and segments, and measuring length
and angles) in the Poincaré half-plane model. His tools can be found here.

- Tim Peil has also written several scripts for the Poincaré half-plane.
His tools can be found here.

- The tools I have written for the Poincaré half-plane complete the remaining constructions for the "standard" ten constructions given at the top of this page. Though some of my tools appear to reproduce the work of others, the constructions do not rely on coordinate (analytic) geometry. See the descriptive file toolbox.pdf for more information.

## poinhalf.zip |
## All my Poincaré half-plane model scripts in one ZIPPED package |

The zip file contains all of the Poincaré half-plane model scripts listed below. If you don't have access to an unzipping utility, you could download one from either Pkware or WinZip.

poinhalf.gsp
| Poincaré half-plane model template Geometer's Sketchpad
file. |

phlength.gss
| Script to measure the Poincaré half-plane length of a line segment. |

phangbis.gss
| Script to bisect an angle in the Poincaré half-plane model. |

phprpon.gss
| Script to construct the perpendicular through a given point on a given line in the Poincaré half-plane model. |

phprpoff.gss
| Script to construct the perpendicular through a given point not on a given line in the Poincaré half-plane model. |

phprpbis.gss
| Script to construct the perpendicular bisector of a Poincaré half-plane segment. |

phcntrpt.gss
| Script to construct a Poincaré half-plane circle given its center and a point on the circle. |

phcntrrd.gss
| Script to construct a Poincaré half-plane circle given its center and two points that determine the radius. |

phmidpt.gss
| Script to construct the midpoint of a line segment in the Poincaré half-plane model. |

phreflpt.gss
| Script to construct the reflection of a given point about a line in the Poincaré half-plane model. |