读取网格算法和网格库

时间:2008-10-08 11:01:06

标签: algorithm mesh

我有兴趣阅读并理解2D网格算法。在Google上进行的搜索显示a lot of papers and sources,但大多数都是学术性的,初学者并不多。

那么,这里有人会推荐任何阅读资源(适合初学者),或者我可以从一开始就学习的开源实现吗?感谢。

另外,与三角网格生成相比,我对四边形网格和混合网格(四边形和三边形网格组合)更感兴趣。

2 个答案:

答案 0 :(得分:6)

我第二次回答大卫关于Jonathan Shewchuk's网站的回答是一个很好的起点。

就开源软件而言,它取决于您正在寻找的内容。

  • 如果您对网格生成感兴趣,可以查看CGAL的代码。理解CGAL代码的低级部分对初学者来说太过分了。然而,即使对于初学者来说,看一下更高级别的算法也会非常有趣。另请注意,documentation of CGAL非常详细。
  • 你也可以查看TetGen,但它的源代码是单片的,没有记录(它更像是最终用户软件而不是库,即使它也可以简单地从其他人调用程式)。尽管如此,它仍然具有可读性,user manual包含一些网格生成的简短表示,并附有一些参考文献。
  • 如果您对网格处理感兴趣,可以查看OpenMesh

有关您的目标的更多信息肯定有助于提供更多相关指示。

答案 1 :(得分:5)

Google搜索的第一个链接会将您带到Jonathan Shewchuk's网站。这实际上不是一个糟糕的起点。他有一个名为triangle的程序,您可以下载它进行2D三角测量。在该页面上,link中使用了creating triangle个引用,其中包含指向triangluation algorithm说明的链接。

网格生成有几种方法。其中最常见的是创建Delaunay triangulation。对一组点进行三角测量非常简单,并且有几种算法可以做到这一点,包括三角形中使用的Watson和Rupert's 当你想创建一个受约束的三角剖分时,三角测量的边缘与输入形状的边缘相匹配,这有点困难,因为你需要恢复某些边缘。

我首先要了解Delaunay三角测量。然后可能会看一些其他网格划分算法。

您将在网格生成论文中找到的一些常见主题是

  • 健壮性 - 就是如何处理浮点错误。
  • 网格质量 - 确保三角形/四面体的形状接近等边。这是否重要取决于您创建网格的原因。对于分析工作来说非常重要,
  • 如何选择在网格中插入节点的位置以提供良好的网格分布。
  • 网格化速度
  • 四边形/六面体网格生成。这比使用三角形/四面体更难。

3D网格生成比2D要困难得多,所以很多论文都是关于3D生成的

网格生成是一个很大的主题。如果您能够提供有关您感兴趣的方面(例如2D或3D)的更多信息,将会有所帮助。如果您能够了解您的蚂蚁行为,那么我可以找到更好的信息来源。< / p>