У меня есть массив из нескольких полигонов Boost.Geometry, и мне нужно объединить их в один полигон. Я успешно реализовал что-то, что объединяет каждый последующий многоугольник с объединением предыдущих двух (просто проходя через них и объединяя другой многоугольник).
multi_polygon polygons; // an array of initial polygons
multi_polygon border; // the unioned polygons
for (polygon p : polygons) {
// add another polygon each iteration
multi_polygon tmp_poly;
union_(border, p, tmp_poly);
border = tmp_poly;
}
Однако выполнение занимает довольно много времени. Я слышал упоминание в видео, что для этого можно использовать функцию assign
, но не было подробно, как, и я не мог найти что-нибудь еще об этом. Как я могу ускорить этот процесс?