计算几何-CGAL:线段和多边形之间的交集



我有一组多边形,我想测试它和线段之间的交集。我查看了手册,但找不到匹配的功能。点、线、线段、三角形和平面之间的交点确实存在。多边形之间的交点也在那里。我的问题是:

  1. 有这样的功能吗
  2. 如果不是,这是否意味着我需要将多边形分解为线段,并在这些线段之间进行相交?(我不愿意这样做的原因是,我认为CGAL实际上可能会用这种方法来实现多边形之间的相交。为什么没有这样的函数来实现直线和多边形的相交?(或者还有其他更好的方法吗

最简单的方法是创建一个可能包含多个多边形的Polygon_set_2对象。要测试外部多边形与该集的交集,只需应用do_interact方法即可。

例如:

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:的更多信息

  • http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Boolean_set_operations_2_ref/Class_General_polygon_set_2.html
  • http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Boolean_set_operations_2_ref/Class_Polygon_set_2.html

我希望它是清楚的,基里尔

相关内容

  • 没有找到相关文章

最新更新