Computing Shortest Paths among Curved Obstacles in the Plane
  A fundamental problem in computational geometry is to compute an obstacle-avoiding Euclidean shortest path between two points in the plane. The case of this problem on polygonal obstacles is well studied. In this paper, we consider the problem version on curved obstacles, commonly modeled as splinegons. A splinegon can be viewed as replacing each edge of a polygon by a convex curved edge (polygons are special splinegons). Each curved edge is assumed to be of O(1) complexity. Given in the plane two points s and t and a set of $h$ pairwise disjoint splinegons with a total of $n$ vertices, we compute a shortest s-to-t path avoiding the splinegons, in $O(n+h\log^{1+\epsilon}h+k)$ time, where k is a parameter sensitive to the structures of the input splinegons and is upper-bounded by $O(h^2)$. In particular, when all splinegons are convex, $k$ is proportional to the number of common tangents in the free space (called "free common tangents") among the splinegons. We develop techniques for solving the problem on the general (non-convex) splinegon domain, which also improve several previous results. In particular, our techniques produce an optimal output-sensitive algorithm for a basic visibility problem of computing all free common tangents among $h$ pairwise disjoint convex splinegons with a total of $n$ vertices. Our algorithm runs in $O(n+h\log h+k)$ time and $O(n)$ space, where $k$ is the number of all free common tangents. Even for the special case where all splinegons are convex polygons, the previously best algorithm for this visibility problem takes $O(n+h^2\log n)$ time. 
Danny Z. Chen, Haitao Wang
cs.CG cs.DS