我正在尝试对给定的冠状动脉模型进行三角测量(请参阅图像和文件)。
起初,我尝试在TetGen引擎中使用 3D 约束Delaunay三角剖分对它们进行三角剖分,但似乎TetGen并没有一直生成它们。我已经尝试了大约 40 种封闭边界的模型,但只有一半是成功的。
作为替代方案,我发现CGAL 3D网格生成将基于Delaunay三角剖分生成类似的网格(当然,它与 3D 约束 Delaunay 三角剖分不同)。
我还测试了 40 个模型,这些模型与 TetGen 测试中使用的数据集相同,但似乎只有 1/4 是成功的。这很奇怪,因为比 TetGen 测试处理的模型更少。
除了封闭流形条件(无边界和流形)之外,CGAL 网格生成是否有任何条件?这是我在测试用例中使用的代码。它与 CGAL 网站上的示例代码几乎相同。
// Create input polyhedron
Polyhedron polyhedron;
std::ifstream input(fileName.str());
input >> polyhedron;
// Create domain
Mesh_domain domain(polyhedron);
// Mesh criteria (no cell_size set)
Mesh_criteria criteria(facet_angle = 25, facet_size = 0.15, facet_distance = 0.008,
cell_radius_edge_ratio = 3);
// Mesh generation
C3t3 c3t3 = CGAL::make_mesh_3<C3t3>(domain, criteria, no_perturb(), no_exude());
findMinAndMax();
cout << "Polygon finish: " << c3t3.number_of_cells_in_complex() << endl;
此外,我想在生成的网格中保留给定的模型三角形,如约束 Delaunay 三角剖分。有没有什么方法可以在没有特定标准的情况下生成网格?
如果您想了解更多信息,请告诉我。