射线和delaunay三角剖分的交点

时间:2016-03-24 12:00:18

标签: intersection cgal raytracing

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

cgal-discuss post中,如果我需要进行多次查询,他们会使用树进行评论。我想,其中大约有200个人没有那么多。不过,我可能有很多要点,> 200万。

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

  

第三种方法是在三角测量中定位一个端点   走向收集你遍历的细胞的另一个终点。

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

建树是否值得?我可以遵循什么其他方法?迭代所有面孔似乎非常低效。

我有一些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;

1 个答案:

答案 0 :(得分:0)

您可以使用line_walk()函数获取光线遍历的两个单元格。然后,您只需使用segment-Triangle php函数在3D中过滤掉它们。