我有一组多边形,我想测试它和一个段之间的交集。我查看了手册,但找不到匹配的功能。点、线、线段、三角形、平面之间的交点确实存在。多边形之间的交集也在那里。我的问题是:
- 有这样的功能吗?
- 如果不是,这是否意味着我需要将多边形分解为段并在这些段之间进行交叉?(我不愿意这样做的原因是,我认为CGAL实际上可能会使用这种方式来做多边形之间的交集。为什么没有这样一个用于相交线和多边形的函数?)或者有没有其他更好的怎么做?
我有一组多边形,我想测试它和一个段之间的交集。我查看了手册,但找不到匹配的功能。点、线、线段、三角形、平面之间的交点确实存在。多边形之间的交集也在那里。我的问题是:
最简单的方法是创建一个可能包含多个多边形的 Polygon_set_2 对象。要测试外部多边形与该集合的交集,您只需应用 do_intersect 方法。
例如:
typedef CGAL::Polygon_set_2<Kernel, std::vector<Kernel::Point_2>> Polygon_set_2;
Polygon_set_2 ps;
Polygon_2 poly;
Polygon_2 line; // line is a polygon defined by 2 points
ps.insert(poly);
bool intersect = ps.do_intersect(line);
更多关于polygon_set_2:
我希望很清楚,基里尔