对于凹多边形中的一个点,多边形外最近的点是什么?

For a point in a concave polygon, what is the closest point outside the polygon?

我有一个位于凹多边形内的点,我想找到最近的点 刚好 在多边形外。我在以下位置实现了答案:For a point in an irregular polygon, what is the most efficient way to select the edge closest to the point? 但找到多边形边缘上的最近点,而不是在多边形之外。

我试过将线从多边形内部的点延伸到边缘的点,但有些情况下行不通。

有什么建议吗?

编辑:为了更清楚,我在凹多边形或凸多边形内有一个点,我想在多边形外找到一个点,尽可能接近里面的点。所以在下图中,我想找到红点。它不必在距离上完美地最小化,只需要在外面并且离原始点不太远。也许是固定数量?

如果您需要多个查询,您可以计算 Voronoi diagram of the polygon (there is a CGAL implementation)。然后您可以查找查询点所在的 Voronoi 单元格。您将获得最近的输入边作为该单元格的站点。如果您还计算多边形外部的 Voronoi 图,您可以简单地从单元格外部的边缘取一个靠近该站点的点。

在大多数情况下,向外延伸线的方法看起来足够好

如果确定最近的点是角点,就取外角平分线上的外点。