Common tangents of two disjoint polygons in linear time and constant   workspace
  We provide a remarkably simple algorithm to compute all (at most four) common tangents of two disjoint simple polygons. Given each polygon as a read-only array of its corners in cyclic order, the algorithm runs in linear time and constant workspace and is the first to achieve the two complexity bounds simultaneously. The set of common tangents provides basic information about the convex hulls of the polygons---whether they are nested, overlapping, or disjoint---and our algorithm thus also decides this relationship. 
Mikkel Abrahamsen, Bartosz Walczak
cs.CG