首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CGAL三维网格生成是否需要除闭流形外的条件?

CGAL三维网格生成是否需要除闭流形外的条件?
EN

Stack Overflow用户
提问于 2016-03-14 03:25:41
回答 1查看 282关注 0票数 0

我正在尝试根据冠状动脉模型进行三角测量(请参考图片和文件)。

起初,我在TetGen engine中尝试使用3D约束Delaunay三角剖分来对它们进行三角剖分,但似乎TetGen并不是一直都生成它们。我试过大约40个封闭边界的模型,但只有一半是成功的。

作为替代,我发现CGAL三维网格生成将产生类似的网格基于Delaunay三角剖分(当然,它不同于三维约束Delaunay三角剖分)。

我还对40个模型进行了测试,这些模型与TetGen测试中使用的数据集相同,但似乎只有1/4的模型成功。这很奇怪,因为处理的模型比在TetGen测试中处理的还要少。

除了闭流形(无边界和流形)外,CGAL网格生成是否有其他条件?下面是我在测试用例中使用的代码。它与CGAL网站的示例代码几乎相同。

代码语言:javascript
复制
// 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;

这是一个CA模型,用于测试用例。

CA模型的图像

另外,我希望在生成的网格中保留给定的模型三角形,比如约束Delaunay三角剖分。在没有特定标准的情况下,是否有生成网格的方法?

如果你想知道更多,请告诉我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-16 13:13:11

问题是网格生成器不能构造足够好的初始点集。当前的策略是从你的物体的包围盒的中心向任意方向发射射线。另一种方法是在表面上随机抽取点的样本,或者从骨架上的点处发射随机射线。我在github上给您提供了一个讨厌的解决方案。第一个参数是网格,第二个参数是网格单元格大小,以便对网格上的点进行采样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35979061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档