В настоящее время я работаю над алгоритмом, который работает с std::vector<Kernel::Point_2>
набором точек P . В качестве входных данных у меня есть многоугольник (Polygon_2<Kernel>
), который имеет подмножество P на своей границе. Остальные точки лежат на внешней стороне данного многоугольника.
Я хочу итеративно расширить многоугольник, что означает удаление ребра (p,q)
и вставку двух новых ребер (p,v)
(v,q)
. Я выбираю вершину v , чтобы пустой треугольник T(p,v,q)
имел максимальную площадь. Это эквивалентно размещению вершины v между p и q в базовом отсортированном списке вершин (границе) многоугольника. В настоящее время я копирую все точки многоугольника в вектор, модифицирую вектор и повторно инициализирую новый многоугольник с вектором границы. Есть ли способ изменить границу существующего многоугольника?