我正在尝试将空间划分为一组多边形,其中每个多边形大约是一组输入点中的一个的 voroni 单元。
我试图为此目的使用 Boost::Voroni,但是使用这个库的输出很复杂,需要付出很多额外的努力才能得到我想要的。
我想知道是否有人知道从 BOOST::voroni 图中得到我想要的东西的最佳方法,或者是否有人知道一个比可以直接让我得到我想要的东西的更简单的库?
这是一些显示我正在尝试做的代码,
voronoi_diagram< float > vd;
construct_voronoi( gridPointPos.begin(), gridPointPos.end(), &vd );
int index = 0;
for (voronoi_diagram<float>::const_cell_iterator it = vd.cells().begin();
it != vd.cells().end(); ++it, ++index ) {
// if the voroni cell has infinite edges,
// then clip them to a finite length
// extract the voroni vertices of this cell
// create a boost polygon from the extracted edges
}
因为 boost 对于我的需求来说过于笼统和复杂,所以我更喜欢一个库或算法来简单地完成所有这些,只返回多边形集。我有哪些选择?