我需要找到凸多边形的最大内切圆,我在许多网站上搜索并发现可以使用 Delaunay 三角剖分来实现。我在 CGAL 讨论中找到了一个带有使用 CGAL 的算法的线程:
“您可以使用 CGAL 轻松计算此问题: 首先,计算点的 Delaunay 三角剖分。 然后,迭代所有三角剖分的有限面。对于每个有限面 f 计算其外心 c 将 c 定位于三角剖分中(为加快速度,您可以给出 f 的一个顶点作为起始提示) 如果 locate(c,hint) 返回的面是有限的,则外心 c 在点的凸包中,因此 f 是候选面 如果 f 是这样一个候选面,则计算其平方外接圆半径仅保留具有最小平方外接圆半径的面”
我对这个算法的最后一部分有些困惑。当我阅读它时,我理解的是三角剖分面的最小外接圆的圆周半径是最大内切圆的半径。但是从 Delaunay 三角剖分的多边形示例中看来,即使是最小外接圆有时也无法适应多边形,那么它如何具有与最大内切圆相同的半径呢?
“您可以使用 CGAL 轻松计算此问题: 首先,计算点的 Delaunay 三角剖分。 然后,迭代所有三角剖分的有限面。对于每个有限面 f 计算其外心 c 将 c 定位于三角剖分中(为加快速度,您可以给出 f 的一个顶点作为起始提示) 如果 locate(c,hint) 返回的面是有限的,则外心 c 在点的凸包中,因此 f 是候选面 如果 f 是这样一个候选面,则计算其平方外接圆半径仅保留具有最小平方外接圆半径的面”
我对这个算法的最后一部分有些困惑。当我阅读它时,我理解的是三角剖分面的最小外接圆的圆周半径是最大内切圆的半径。但是从 Delaunay 三角剖分的多边形示例中看来,即使是最小外接圆有时也无法适应多边形,那么它如何具有与最大内切圆相同的半径呢?