https://en.wikipedia.org/wiki/Force-directed_graph_drawing
启发式算法:经过一段时间后,这可能会趋向于一个合理的近似值。for (int i = 0; i < n; /*++i*/) {
p = RandomPointInsideConvexHull();
if (IsInsidePolygon(p)) {
++i;
d = DistanceToClosestEdge(p);
if (d > bestD) {
bestP = p;
}
}
}
运行此循环后,您将通过bestP
近似解决方案。 n
是要选择的参数。如果您想要更准确的结果,可以重新启动搜索,但现在不要选择多边形凸包内的点,而是可以选择邻近bestP
的点,例如不超过bestD / 5
(这次您不需要检查随机点是否在多边形内)。
i
的自增条件。尽管这不是您提到的多边形的最有效算法。 - Yola