【发布时间】:2018-01-14 14:23:32
【问题描述】:
首先,我指的是 boost::polygon 库,而不是 boost::geometry 库。我的代码是:
namespace gtl = boost::polygon;
using namespace boost::polygon::operators;
typedef gtl::polygon_90_data<int> Polygon;
typedef gtl::polygon_traits<Polygon>::point_type Point;
typedef gtl::polygon_90_set_data<int> PolygonSet;
Point pts1[] = { Point(10000, 20000), Point(12000, 20000), Point(12000, 14000), Point(10000, 14000)};
Polygon poly1;
gtl::set_points(poly1, pts1, pts1 + 4);
Point pts2[] = { Point(11500, 18000), Point(11500, 25000), Point(14000, 25000), Point(14000, 18000)};
Polygon poly2;
gtl::set_points(poly2, pts2, pts2 + 4);
PolygonSet polyset;
assign(polyset, poly1 + poly2);
我想使用 poly1 和 poly2 的并集,它将是一个有 8 个点的多边形。现在我必须将结果 polyset 转换为 Polygon 类型,但我没有找到这样做的方法。谁能告诉我该怎么做?
【问题讨论】:
-
gtl::contains 函数不能用polygon_set_data 和point 调用,我必须使用polygon_data 和point,所以我必须将2 个polygon_data 联合的polygon_set_data 转换为polygon_data。
-
哇。在评论中,您基本上完全改变了问题。我保留了答案,因为我认为对于基本目标没有更直接的答案,但也许其他人会知道(我会使用 Boost Geometry 来完成这项任务)
标签: c++ boost polygon boost-polygon