我确实需要访问boost多边形的各个点,因此我可以添加/删除/移动它们。
我发现polygon
具有外环和内环,可以像这样迭代它们
auto& polygon = experiment->mPolygons.at(experiment->selectedPolygonIndex);
auto& outerRing = boost::geometry::exterior_ring(polygon);
for(auto& point : outerRing)
{
//some stuff using point
}
但这对修改没有帮助。我还想知道点的索引,因此我可以在正确的位置插入一个新的索引。
我怎样才能做到这一点?
最佳答案
假设您实际上是说Boost Geometry(库),则可以在此处找到“多边形概念”的描述:https://www.boost.org/doc/libs/1_68_0/libs/geometry/doc/html/geometry/reference/concepts/concept_polygon.html
请注意,它确认多边形模板已为该概念建模。
您还将注意到,许多可能的操作未直接包含在该页面上。相反,您必须单击进入描述组成元素的Ring concept。
这些概念适用于创建任意(用户提供的)数据结构的只读 View 。但是,某些操作作为算法包括在内,例如:bg::assign(除其他外,具有assign_values,assign_zero,assign_points,assign_inverse),bg::append等。
关于c++ - 如何修改 boost 多边形?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51890050/