【问题标题】:Intersection of a ray and a delaunay triangulation射线与德劳内三角剖分的交点
【发布时间】:2016-03-24 12:00:17
【问题描述】:

如何将 3d 射线与使用 project_xy 特征从 3d 点创建的 2D 约束 Delaunay 三角剖分相交?

cgal-discuss post 中,如果我必须进行许多查询,他们会使用树进行评论。我没有那么多,我想,大约有 200 个。但是,我可能有很多积分,> 2 亿。

他们还评论了另一种方法:

第三种选择是在三角剖分中定位一个端点,然后 走到另一个端点收集你遍历的细胞。

但我不明白我们如何测试我们已经遍历了三角测量。在我的例子中,3d 三角网格是地形模型,它接近于一个平面,这意味着大多数时候只有一个交叉点存在,如果需要,我可以将光线限制为一个线段。

造一棵树值得吗?我还能遵循什么其他方法?迭代所有的面孔似乎效率很低。

我有一些 typedef,提供一些上下文:

typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Projection_traits_xy_3<K>  Gt;
typedef K::Point_3   Point3;

typedef CGAL::Triangulation_vertex_base_2<Gt> Vb;
typedef CGAL::Delaunay_mesh_face_base_2<Gt> Fb;
typedef CGAL::Triangulation_data_structure_2<Vb, Fb> Tds;
typedef CGAL::Constrained_Delaunay_triangulation_2<Gt, Tds> CDT;

【问题讨论】:

    标签: intersection cgal raytracing


    【解决方案1】:

    您可以使用line_walk()函数来获取射线穿过的两个单元格中的所有单元格。然后,您只需使用 segment-Triangle do_intersect() 函数在 3D 中过滤掉它们。

    【讨论】:

      猜你喜欢
      • 2012-04-27
      • 2020-05-12
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 2022-01-09
      • 2013-11-18
      • 2014-03-24
      相关资源
      最近更新 更多