如何修改升压多边形?

时间:2018-08-17 07:05:32

标签: c++ boost geometry boost-geometry

我确实需要访问boost多边形的各个点,因此我可以添加/删除/移动它们。

我发现polygon有内圈和内圈,我可以像这样迭代它们

auto& polygon = experiment->mPolygons.at(experiment->selectedPolygonIndex);
auto& outerRing = boost::geometry::exterior_ring(polygon);

for(auto& point : outerRing)
{
    //some stuff using point
}

但是它对修改没有帮助。我还想知道点的索引,所以我可以在正确的位置插入一个新的索引。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

假设您实际上是指Boost Geometry(库),则可以在此处找到“多边形概念”的描述:https://www.boost.org/doc/libs/1_68_0/libs/geometry/doc/html/geometry/reference/concepts/concept_polygon.html

请注意,它确认多边形模板已为该概念建模。

您还将注意到,许多可能的操作未直接包含在该页面上。取而代之的是,您必须点击进入描述组成元素的Ring concept

这些概念适用于创建任意(用户提供的)数据结构的只读视图。但是,某些操作作为算法包括在内,例如:bg::assign(其中具有assign_values,assign_zero,assign_points,assign_inverse等),bg::append等。