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.