CIRCLEPACK(1)

NAME
CirclePack, nerve, radii, lengths, angles, DrawPacking, DrawPacking3D, DrawNerve

SYNOPSIS
<<DrawPacking`

cp = CirclePack[tri, opts]
nerve[cp]
radii[cp]
lengths[cp]
angles[cp]
DrawPacking[cp]
DrawPacking3D[cp]
DrawNerve[cp]

DESCRIPTION
The following Mathematica functions are defined by loading the package CirclePack.m. These along with additional functions for displaying circle packings are defined by loading DrawPacking.m.

CirclePack[tri]
    where tri is a Triangulation object (as defined in the package Triangulation.m) creates and returns a CirclePacking object. This may then be used as input to any of the functions that follow.

The default CirclePacking is one in which the circles are tangent to one another. To create a CirclePacking in which circles overlap with specified intersection angles use CirclePack[tri, Intersects -> {0.5, ...}]. The Intersects parameter is a list of cosines of intersection angles. The i'th element of the list corresponds to the i'th edge listed by the invocation edges[nerve[cp]]. (So in particular the list should contain ne[nerve[cp]] numbers between 0 and 1.) DrawNerve[cp] provides a more immediate way to see how the edges are numbered.

You can control the maximum number of steps in the numerical algorithm which calculates CirclePackings with the option Steps -> 30 for example. The default is 20.

nerve[cp]
    Returns the Triangulation object originally supplied to the CirclePack call by which cp was created. In other words the nerve of the packing. See the manual page for Triangulation.m for more information on Triangulation objects.

radii[cp]
    Lists the radii of the circles in cp. The i'th member of this list is the radius of the circle centered on the i'th vertex of the nerve as listed by vertices[nerve[cp]].

lengths[cp]
    Lists the lengths of the edges of the nerve of cp. The i'th member of this list is the length of the i'th edge in the list edges[nerve[cp]].

angles[cp]
    Lists the angles at each corner of each triangle of the nerve. The i'th member of this list is the angle at the i'th corner in the list corners[nerve[cp]].

The following functions are defined in DrawPacking.m:

DrawPacking[cp]
    Draws the packing in whichever geometry is appropriate. Circle packings on the sphere are drawn using stereographic projection. Circle packings on surfaces of genus 2 or higher are drawn in the Poincare disk model of hyperbolic space. In the Euclidean and hyperbolic cases circles are shown as coloured disks. Disks which represent the same disk on the underlying surface are given the same colour.

DrawPacking3D[cp]
    Applies only to spherical circle packings. Draws a 3D representation of the circle packing.

DrawNerve[cp]
    Draws the nerve of the packing. The geometry is selected as for DrawPacking[cp]. Each edge is labelled with its position in the list edges[nerve[cp]]. This is useful when constructing circle packings with overlapping circles.

SEE ALSO
Triangulation - A Mathematica package for creating and working with 2D triangulations.

BUGS
None of these functions check that the input triangulation is actually the triangulation of some closed orientable surface.

The algorithm used may not succeed in finding every circle packing on the sphere. (That is, I have not seen it fail but neither have I been able to prove that it should succeed.)