Interconnection Trees

This applet demonstrates various types of minimum-length
interconnection trees; you can grab the terminals and move them around
to see how the interconnections are affected.
A minimum spanning tree is a minimum-length
interconnection of a set of terminals that uses only edges between the
terminals themselves.
To do: Add other types of trees (Steiner trees, mixed
shortest-path/minimum spanning trees, etc.).
Also add rectilinear, rather than Euclidean, trees.
Finally, break out the tree-computation routines into separate threads
and/or use faster algorithms so they don't slow down mouse dragging.