射线和delaunay三角剖分的交点

问题描述 投票:0回答:1

如何使用project_xy特征将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;
intersection cgal raytracing
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.