## 4.  What's in the Toolbox?

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:

1. Construct a non-Euclidean line, given two points on the line.
2. Construct a non-Euclidean line segment, given the endpoints of the segment.
3. Measure the length of a non-Euclidean line segment.
4. Calculate the measure of an angle.
5. Construct the bisector of a given angle.
6. Construct a perpendicular to a given line through a given point on the line.
7. Construct a perpendicular to a given line through a given point not on the line.
8. Construct the perpendicular bisector of a non-Euclidean line segment.
9. Construct a circle, given its center and a point on the circle.
10. 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.

### Page Contents

 Beltrami-Klein disk model tools. Poincarť half-plane model tools. Poincarť disk model tools.

### 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.
Creating scripts for the ten "standard" hyperbolic constructions in the Klein disk necessitated the development of several other tools that are particularly useful in this model. For example, constructing the perpendicular bisector of a line segment in the model involves finding the "pole" of a Klein line, so the tool kpole.gss was developed for that purpose.  In addition, one particular challenge posed by the Beltrami-Klein model is that unlike the Poincarť models, Klein circles are not Euclidean circles - they are ellipses. As such, in Geometer's Sketchpad, they must be drawn as loci. This creates a practical problem: Sketchpad does not know how to intersect loci. Below, then are some additional tools that allow one to find the intersection of Klein circles with other Klein circles, Klein lines, and Klein segments. All these tools are available in the complete file klein.zip.  If you don't have access to an unzipping utility, you could download one from either Pkware or WinZip
 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.

### Poincarť Disk Model Tools

• 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

### Poincarť Half-Plane Model Tools

• 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.

### 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.
As in the Klein model above, completing the scripts for the ten "standard" hyperbolic constructions in the Poincarť half-plane necessitated the development of other construction tools in this model. For example, the tool phprpbis.gss that finds the perpendicular bisector of a "line segment" in the half-plane first finds the midpoint of that segment.  The tool phmidpt.gss was developed for that purpose.  This tool, as well as the script "phreflpt.gss," is available in the complete file poinhalf.zip.
 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.