Я пытаюсь разбить пространство на набор полигонов, где каждый полигон представляет собой примерно ячейку Ворони для одной из множества входных точек.
Я пытался использовать 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 является слишком общим и сложным для моих нужд, я бы предпочел библиотеку или алгоритм, который просто делает все это, возвращая только наборы полигонов. Каковы мои варианты?