Drawing Planar Diagrams
My summer student Emily Redelmeier is in the process of writing a program that uses circle packing to draw an arbitrary object given as a PD
as in Planar Diagrams. At the moment her program is still slow, limited and sometimes buggy, but it is already quite useful, as the following lines show:
(For In[1] see Setup)
In[2]:= ?DrawPD
DrawPD[pd] takes the planar diagram description pd and creates a graphics object containing a picture of the knot. DrawPD[pd,options], where options is a list of rules, allows the user to control some of the parameters. OuterFace->n sets the face at infinity to the face numbered n. OuterFace->{e_1,e_2,...,e_n} sets the face at infinity to a face which has edges e_1, e_2, ..., e_n in the planar diagram description. Gap->g sets the size of the gap around a crossing to length g. |
In[3]:= DrawPD::about
DrawPD was written by Emily Redelmeier at the University of Toronto in the summers of 2003 and 2004. |
Thus, for example, here's the torus knot T(4,3):
One problem we currently have is that crossings come out at non-uniform sizes, hence in the picture below you may need magnifying glasses to decide who's over and who's under: