有没有简单的方法来判断一个点是否在Voronoi单元内?
例如,以下代码生成类似于下面的图表:
using namespace boost::polygon;
point_data<int> p1(0, 0);
point_data<int> p2(-10, 10);
point_data<int> p3(-10, -10);
point_data<int> p4(10, -10);
point_data<int> p5(10, 10);
std::vector<point_data<int>> pts = { p1, p2, p3, p4, p5 };
construct_voronoi(pts.begin(), pts.end(), vd);
在这种情况下,我该如何确定点(5,5)是否在中心单元格内?我可以将每个单元格创建为一个多边形,并使用点在多边形算法来找出,但我想知道库是否免费提供了类似的功能。
(5, 5)
的哪个结果。无论如何,另一种方法是不使用点在多边形算法,而是检查测试点到定义每个 Voronoi 单元格的点的距离。距离最近的点告诉您您的测试点在哪个单元格中。 - Magnus Hoff