How to find the largest circle that lies within a sampled boundary?

后端 未结 3 1970
深忆病人
深忆病人 2021-01-13 04:42

Given sets of 2D points which are the boundaries of an irregular shape, a shape which may not be convex and may have internal holes, is there an algorithm to find the larges

3条回答
  •  有刺的猬
    2021-01-13 05:03

    Motivation. Shapes given by points that sample the shape first reminds me of the concept of alpha shapes and their relation to persistent topology. See these slides for related pictures.

    Anyhow, alpha shapes have an intimate relation to the Voronoi diagram of points, which is the dual (as a planar graph) to the Delaunay triangulation.

    Solution. What I suggest is to consider all Voronoi nodes and take the node with the largest clearance radius (distance to its defining points) as the point you look for:

    Voronoi diagram of points

    In the dual setting of Delaunay triangulations this node corresponds to the Delaunay triangle with the largest circumcircle.

    This solution is also motivated by the maximum inscribed circle problem in computational geometry.

    Another way to look at it is the grass-fire interpretation of Voronoi diagrams: Consider a grass fire starting at each input point. The fire grows in each direction at unit speed. The red point in the middle is the latest to be reached within the convex hull.

    Analysis & implementation. The time complexity of the algorithm is O(n log n) for the Voronoi diagram and O(n) to find the Voronoi node with the largest clearance. A classic implementation is qhull. There seems to be an C++ implementation in boost that does that for you. But any Delaunay triangulation code would be fine, too.

    Possible issues. If the shape is similar to an Omega letter – which possesses a large pocket – then the Voronoi node with the largest clearance is "outside" the Omega shape. Hence, one would need to get a better grip on the notion of "inside" and "outside" of a sampled shape. Here again the initially mentioned alpha shape may help, c.f. a survey by Edelsbrunner, who invented alpha shapes.

提交回复
热议问题