CGAL:线段和多边形之间的交点?

2024-03-01

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

  1. 有这样的功能吗?
  2. 如果不是,是否意味着我需要将多边形分解成段并在这些段之间进行相交? (我不愿意这样做的原因是,我认为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 的更多信息:

  • 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_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 http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Boolean_set_operations_2_ref/Class_Polygon_set_2.html

我希望这是清楚的 基里尔

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CGAL:线段和多边形之间的交点? 的相关文章

  • CGAL:帮助从 Delaunay 三角测量获取三角形坐标

    我是 CGAL 的新手 我确信我的问题很简单 我正在尝试使用 CGAL 进行一些 Delaunay 三角测量 我有一个球体上有 N 个 3D 点的网格 我想使用这些点作为三角形的顶点对球体进行三角测量 我只需要获取生成的三角形的顶点列表 如
  • 重叠矩形的总面积

    假设我们有以下 4 个矩形 它们都是用x and y它们所有顶点的坐标 从左上角开始按顺时针方向 所有矩形的边均平行于 x 轴和 y 轴 Note 我愿意使用任何现有的库 如果存在 蓝色矩形示例 20 50 40 50 40 110 20
  • Visual C++:如何禁用特定链接器警告?

    我正在使用 CGAL 中的一个库 该库在代码编译的链接阶段会产生许多这种形式的链接警告 warning LNK4099 PDB vc80 pdb was not found with gmp vc80 mt sgd lib or at vc
  • CGAL Visibility 计算错误的可见性多边形(简单多边形可见性算法)

    我必须计算给定多边形的某些顶点的可见性多边形 我正在使用 CGAL 可见性计算库 但是对于这个例子是多边形 https www ic unicamp br cid Problem instances Art Gallery AGPVG mi
  • 将点平面分成相等的两半[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 给定一个二维平面 其中有 n 个点 我需要生成一条线的方程 该线将平面分开 使得一侧有 n 2 个点 另一侧有 n 2 个点 我假设这些点
  • 沿多边形边界生成等距点,但 CW/CCW

    假设我有一个多边形的顶点 它们都是逆时针方向的 我希望生成n沿该多边形边界的等距点 有谁知道任何现有的包可以做到这一点 如果没有 可以使用一种算法吗 我正在用Python工作 例如 如果所讨论的多边形是矩形 我想要的是 在此输入图像描述 h
  • 寻找凹/凸多边形内的有界矩形

    我正在寻找一种在凹多边形或凸多边形内查找轴对齐矩形的方法 我一直在网上查找 我能找到的最接近的解决方案只适合凸多边形 而不适合凹多边形 例如 在多边形内查找轴对齐的矩形 https stackoverflow com questions 6
  • 删除 Meshlab 或 vcglib 中的自相交

    如何使用 Meshlab 应用程序或 vcglib 消除网格的自相交 这超出了范围 但 CGAL 中有一些函数 这仍然是实验性的 没有记录 但您可以使用该功能remove self intersections https github co
  • 求近似规则的点网格子集的周长

    让我们考虑一组接近规则的二维网格 这些网格与相邻网格相邻 相邻网格具有一个或多个相同的顶点 这里是10个网格的样本 顶点坐标 经度 纬度 如下 A lt lon lat 1 2 1 85 30754 27 91250 2 85 32862
  • 确定形成四边形的顶点顺序

    假设我在 2D 空间中有 4 个顶点 有谁知道一种有效的算法可以给我对应于简单四边形的顶点排序 也就是说 它将标记顶点1 2 3 4这样如果我跟随1 2 2 3 3 4我将绘制一个简单的 即不相交的 四边形 只需提供我可以谷歌搜索的标准算法
  • 高维中的凸包,找到多面体的顶点

    假设我有一个 6 维空间中的点云 我可以根据需要使其密集 这些点位于低维多面体的表面上 即点向量 x1 x2 x6 看起来是共面的 我想找到这个未知多面体的顶点 我当前的尝试通过 Python 中的 scipy 接口使用 qhull 算法
  • 垂直于给定点的直线

    如何从给定点在线段上绘制垂线 我的线段定义为 x1 y1 x2 y2 如果我从点 x3 y3 绘制垂直线并且它与点 x4 y4 上的线相交 我想找出这个 x4 y4 我帮你解了方程 k y2 y1 x3 x1 x2 x1 y3 y1 y2
  • 计算非凸多面体的外向法线

    如果多面体的所有节点 可能是非凸的 及其坐标已知 面的点按顺序给出 绕外法线逆时针或顺时针 如何获得每个面的外法向量脸 这是凸多面体的一种方法 计算面法线和缠绕 https stackoverflow com questions 40454
  • 计算 3D 平面多边形的质心

    这是一个与此类似的问题one here https stackoverflow com questions 2350604 get the area of a 3d surface 给定定义表面的 3D 坐标列表 Point3D1 Poin
  • 判断一个点是否在多面体内部

    我试图确定某个特定点是否位于多面体内部 在我当前的实现中 我正在研究的方法采用我们正在寻找多面体面的数组 在本例中为三角形 但稍后可能是其他多边形 的点 我一直在尝试根据这里找到的信息进行工作 http softsurfer com Arc
  • 给定两个(大)点集,我如何有效地找到彼此最接近的点对?

    我需要解决一个计算问题 该问题归结为搜索两个集合之间最接近的点对 问题是这样的 给定欧几里德空间中的一组点 A 和一组点 B 找到所有对 a b 使得 b 是 B 中与 a 最近的点 a 是 A 中与 b 最近的点 集合 A 和 B 的大小
  • 加权 Voronoi 的 CGAL 2D APOLLONIUS 图 - 如何生成和获取面和顶点?

    我正在尝试根据阿波罗尼乌斯图生成加权沃罗诺伊 我正在使用 CGAL 库 我找不到如何从 apollonius 获取面和顶点的好例子 我有以下类型定义 typedef double NT typedef CGAL Cartesian lt N
  • 点集子集的最小周长凸包

    给定平面上的 n 个点 没有 3 个共线 给定数字 k 找到 k 个点的子集 使得 k 个点的凸包在 k 个点的子集的任何凸包中具有最小周长 我可以想到一个简单的方法 运行时间为 O n k k log k 找到大小为 k 的每个子集的凸包
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • CGAL:如何有效计算多面体的面面积?

    我有一个多面体 其面是三角形 我知道在 CGAL 中 Triangle 3 类提供了 squared area 方法 通过它我们可以计算三角形的面积 有什么方法可以将其应用到多面体方面吗 或者关于如何计算每个面的面积有什么想法吗 这是一个例

随机推荐