如何修改boost多边形?

问题描述 投票:1回答:1

我真的需要访问boost多边形的单独点,所以我可以添加/删除/移动它们。

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

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

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

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

我怎样才能做到这一点?

c++ boost geometry boost-geometry
1个回答
0
投票

假设您实际上意味着Boost Geometry(库),您可以在这里找到Polygon Concept的描述: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等。

© www.soinside.com 2019 - 2024. All rights reserved.