【问题标题】:Does CGAL 3D mesh generation require condition except closed manifold?CGAL 3D 网格生成是否需要封闭歧管以外的条件?
【发布时间】:2016-03-14 03:25:41
【问题描述】:

我正在尝试对给定的冠状动脉模型进行三角测量(请参阅图像和文件)。

起初,我尝试在 TetGen 引擎中使用 3D 约束 Delaunay 三角剖分对它们进行三角剖分,但似乎 TetGen 没有t 始终生成它们。我尝试了大约 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;

Here is one of CA model which was used in test case.

The image of CA model

另外,我想在生成的网格中保留给定的模型三角形,例如受约束的 Delaunay 三角剖分。有没有什么方法可以在没有特定条件的情况下生成网格?

如果您想了解更多信息,请告诉我。

【问题讨论】:

    标签: conditional-statements mesh cgal triangulation manifold


    【解决方案1】:

    问题是网格生成器没有构造足够好的初始点集。当前的策略是从对象边界框的中心向随机方向发射光线。或者,可以从表面上的点随机采样,或者从骨架上的点拍摄随机光线。我在github 上为您提供了一个hacky 解决方案。第一个参数是您的网格,第二个参数是网格单元大小,以便对网格上的点进行采样。

    【讨论】:

      猜你喜欢
      • 2020-09-16
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 2023-01-08
      • 2010-11-27
      相关资源
      最近更新 更多