问题正如标题:可以使用哪个 2D(三角形)网格生成器软件,它具有一组几何图元、受控网格大小和标准输出(.vtk 或类似的东西)?
为了测试我的代码,我需要一个三角形网格,我正在寻找最简单的方法来做到这一点。例如,在球体的 3D 案例中,我很高兴使用带有几行代码的 NETGEN 来获得具有受控网格大小和标准输出格式的网格。
有人可以给我推荐吗?
谢谢!
问题正如标题:可以使用哪个 2D(三角形)网格生成器软件,它具有一组几何图元、受控网格大小和标准输出(.vtk 或类似的东西)?
为了测试我的代码,我需要一个三角形网格,我正在寻找最简单的方法来做到这一点。例如,在球体的 3D 案例中,我很高兴使用带有几行代码的 NETGEN 来获得具有受控网格大小和标准输出格式的网格。
有人可以给我推荐吗?
谢谢!
Shewchuk 的三角形网格生成器可生成高质量的网格并且非常强大。但是,边界定义是一系列直线。因此,要在一个圆上生成一系列细化网格,您还必须细化每个网格的边界定义。
另一种选择是 Persson 的distmesh三角形网格器,如本页所示,只需要两行 MATLAB(或 Octave)代码即可对圆进行网格划分
fd=@(p) sqrt(sum(p.^2,2))-1;
[p,t]=distmesh2d(fd,@huniform,0.2,[-1,-1;1,1],[]);
并且可以通过更改单个“网格密度”参数来细化网格,而无需更改几何定义。
您可以方便地使用 MATLAB 以您选择的任何格式编写坐标矩阵p和连接矩阵。t而且,正如我已经验证的那样,如果您无权访问 MATLAB,它也可以在 Octave 中运行。
您可以使用 Jonathan Shewchuk 的三角形网格生成器 [1]。它有自己的文件格式,但很容易翻译。如果您打算将其嵌入到其他软件中,也可以将其编译为具有易于使用 API 的库。您还可以使用 CGAL [2],这是一个具有许多功能(包括 2D 网格生成)的大型软件。