2017-08-02 78 views
1

我有一个3d区域的四面体网格。网格由扩展名为.node和.ele的两个文件定义,其中包含与节点和元素相关的数据(这是tetgen输出文件的格式,即三维Delaunay四面体化程序)。 .node文件在每行中包含该节点的节点号和x,y,z坐标。 .ele文件包含与其四个顶点相对应的元素编号和节点编号。现在,给定任何点(x1,y1,z1),决定这个点属于哪个元素的最简单的算法是什么?找到一个点属于哪个四面体元素

+0

也许计算每个四面体的边界AABB,并插入到一个* BVH *(边界体积层次) - >为O(log N)×宽相*搜索。然后对每个AABB相交,看它是否在相应的四面体内 – meowgoesthedog

回答

1

如果你知道四面体的面的方向,那么你只需要计算由点p =(x1,y1,z1)和四面体的每个面形成的四面体的体积。点p在一个四面体内部,当且仅当它对每个面形成一个正体积。


CGinC
Computational Geometry in C 片段。


相关问题