Hyperbolic Tessellations
Details about the applet
I originally wrote this program in the programming language Pasacl back in April, 1987. It
produced hyperbolic tessellations in a Poincaré disk for display on a Tektronix terminal. I finally got around to translating it into Java for an applet in December, 2002.
Much of the program is the same. The mathematics is the same, and the overall algorithm hasn't changed. But the interface with the user is quite different. Also, Java is an object-oriented
language while Pascal is not, so the structure of the program looks quite different in places.
Applet tags
There are a number of parameter tags for the applet. Many of these appear as buttons as well, but not all of them.
- interactive: whether the applet is interactive with buttons, or not. In the window
shown above, it is not interactive.
- n: the number of sides on each polygon. (It's 3 in the window above.)
- k: the number of polygons that meet at each vertex. (It's 14 above.)
- quasiregular: true if quasiregular, false if regular (the default as above).
- layers: the number of layers around the central polygon. (2 above.)
- skipNumber: 1 for regular polygons, higher for stars. (Default 2 as above.)
- bgColor: the background color that appears outside the disk in the
applet window. (It's "black" above.)
- diskColor: the color of the disk. (It's "white" above.)
- fill: true (the default as above) to fill in the polygons with color, false
just to see the outlines of the polygons.
- outline: true (the default) to outline the polygons in black, false
not to (as above).
- grayScale: true to display shades of gray instead of colors, the default is
false (as above).
- alternating: if true, when k is even, color all the polygons in
two alternate colors; the default is false.
Components of the applet
The source code for each class of the applet is in a file *.java, and its compiled code is in the corresponding *.class file.
- A class for the applet itself:
PoincareApplet.java,
PoincareApplet.class
- A class for parameters:
TileParameters.java,
TileParameters.class
- A class for the Poincaré disk:
PoincareDisk.java,
PoincareDisk.class
- A class for polygons in that disk:
Polygon.java,
Polygon.class
- A class for lines in the hyperbolic plane:
Line.java,
Line.class
- A class for points in the plane:
Point.java,
Point.class
- A class for complex numbers:
Complex.java,
Complex.class
- A class for circles as curves:
CircularCurve.java,
CircularCurve.class
- A class for curves in general:
Curve.java,
Curve.class
- A class for lists of screen coordinates:
SCL.java,
SCL.class
Return to the index.
Dec 2002
David E. Joyce
Department of Mathematics and Computer Science
Clark University
Worcester, MA 01610
The address of this file is http://aleph0.clarku.edu/~djoyce/poincare/