Next: 5.2 Drawing Braids
Up: 5 Graphical Output
Previous: 5 Graphical Output
  Contents
  Index
Subsections
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 Section 4.1. At the moment her program is still slow, limited and sometimes buggy, but it is already quite useful, as the following lines show:
In[2]:= ?DrawPD
In[3]:= DrawPD::about
|
Thus, for example, here's the torus knot T(4,3):
In[4]:= | Show[DrawPD[TorusKnot[4, 3]]] |
![]() | |
Out[4]= | -Graphics- |
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:
In[5]:= | MillettUnknot = PD[ X[1,10,2,11], X[9,2,10,3], X[3,7,4,6], X[15,5,16,4], X[5,17,6,16], X[7,14,8,15], X[8,18,9,17], X[11,18,12,19], X[19,12,20,13], X[13,20,14,1] ]; |
In[6]:= | Show[DrawPD[MillettUnknot]] |
![]() | |
Out[6]= | -Graphics- |
In such a situation, the option Gap is sometimes handy:
In[7]:= | Show[DrawPD[MillettUnknot, {Gap -> 0.03}]] |
![]() | |
Out[7]= | -Graphics- |
![]() |
![]() |
But now every ingredient of the original knot (every arc, crossing and
face) has a disk in the plane in which it can be cleanly drawn and
clashes are guaranteed not to occur. Furthermore, knowing the precise
coordinates of all the tangency points allows us to represent each
ingredient by some nice smooth arcs that meet smoothly. The result is
the right half of the picture above. Removing all the circles, what
remains is the desired clean planar picture of
.