CPINTRO(1)

NAME
cpintro - introduction to CirclePack.m and DrawPacking.m

DESCRIPTION
(If you have a NeXT workstation have a look at the notebook "/u/geom/lib/circlepack/demo.ma" first.) The first few lines of Triangulation.m, CirclePack.m and DrawPacking.m (in the directory /u/geom/lib/mathematica/local/Packcages) will tell you what these files contain over and above what is mentioned below. Start Mathematica, then type "<<DrawPacking.m" followed by "cpexamples.m". "DrawPacking.m" loads all the packages required to calculate and display circle packings. Contained in "cpexamples.m" is a triangulation of a genus 2 surface which we will look at to begin with. Typing "CirclePack[genus2]" will cause a CirclePacking object to be created. Please be patient, Mathematica isn't too quick at numerical calculations and this will probably take about 30 seconds. Various functions are available to examine CirclePackings. The two most important are "DrawPacking[]" and "DrawNerve[]". Try applying these functions to the CirclePacking. The result should be a picture of the packing on which is shown the original triangulation and a picture of just the triangulation with the edges numbered. You can control which edge is at the middle of the picture by typing "DrawPacking[-circlepacking-, 23]" for example. This says that the 23rd edge listed in "alledges[genus2]" should go at the centre. Looking at the output of "DrawNerve[-circlepacking-, 23]" you will see that some of the edges have duplicate numbers on them. This is because these edges have to be identified to get a triangulation of a genus 2 surface. All the vertices round the edge of the picture have been identified. So in fact all the disks around the edge of the packing are in fact the same. They have been coloured the same in order to show this. We can also create packings in which circles overlap at specified angles rather than simply being tangent. To do this we need to include the option "Intersects -> {0.5, 1, 0, ... }" in the "CirclePack[]" invocation. This says that the circles at each end of the edge labelled 1 should cross at angle Pi/3. In general the table should contain as many entries as the nerve has uniquely numbered edges. The i'th entry gives the Cosine of the required intersection angle at the i'th edge. (The default is "Table[1., {ne[genus2]}]".) Other examples in "cpexamples.m" include an octahedron (oct), an icosahedron (icos) and a torus cut into 4 triangles (torus). With "oct" and "icos" there are two possible ways to display the packing. You can either look at it stereographically projected to the plane or look at it in 3D. (Both pictures unfortunately tend to be a bit confusing and may take a moment to sort out.)

FUTURE DEVELOPMENTS
Given a circle packing on a sphere there is a corresponding polyhedron in hyperbolic space whose dihedral angles are the intersection angles of the circle packing. I am working on producing pictures of the polyhedron corresponding to a given circle packing on the sphere. I am using an algorithm for finding packings which I believe will always converge if a packing exists. I would like to be able to prove that this is the case and moreover get the program to verify the conditions necessary for a solution to exist. I am also thinking about input and output using more interactive methods than the existing one. It would be nice for instance to be able to input a triangulation using the the mouse to draw points and then join them up.

AUTHOR
Contact: Oliver Goodman, (oag@geom.umn.edu) if you have any comments or suggestions regarding this package.

SEE ALSO
Triangulation, CirclePack