网格算法和网格库的阅读

发布于 2024-07-07 03:03:47 字数 321 浏览 13 评论 0 原文

我有兴趣阅读和理解二维网格算法。 在 Google 上搜索后发现 很多论文和资料来源,但大多数都过于学术化,不适合初学者。

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

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

I am interested to read and understand the 2D mesh algorithms. A search on Google reveals a lot of papers and sources, however most are too academic and not much on beginner's side.

So, would anyone here recommend any reading sources ( suitable for the beginners), or open source implementation that I can learn from the start? Thanks.

Also, compared to triangular mesh generation, I have more interest in quadrilateral mesh and mix mesh( quad and tri combined).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枯叶蝶 2024-07-14 03:03:47

我赞同大卫关于 Jonathan Shewchuk 网站的回答,这是一个很好的起点。

就开源软件而言,这取决于您到底要寻找什么。

  • 如果你对网格生成感兴趣,你可以看看 CGAL 的代码。 对于初学者来说,理解 CGAL 代码的低级部分是太多了。 然而,即使对于初学者来说,了解更高级别的算法也会非常有趣。 另请注意,CGAL 文档非常详细。
  • 您还可以查看 TetGen,但它的源代码是单一的并且没有文档记录(它更多是最终用户软件而不是库的一部分,即使它也可以简单地从其他程序调用)。 尽管如此,它仍然具有相当的可读性,并且用户手册包含以下内容的简短介绍:网格生成,有一些参考。
  • 如果您也对网格处理感兴趣,可以查看OpenMesh

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

I second David's answer regarding Jonathan Shewchuk's site as a good starting point.

In terms of open source software, it depends on what you are looking for exactly.

  • If you are interested in mesh generation, you can have a look at CGAL's code. Understanding the low level parts of CGAL's code is too much for a beginner. However, having a look at the higher level algorithms can be quite interesting even for a beginner. Also note that the documentation of CGAL is very detailed.
  • You can also have a look at TetGen, but its source code is monolithic and is not documented (it is more of an end user software rather than a library, even if it can also be called simply from other programs). Still, it is fairly readable, and the user manual contains a short presentation of mesh generation, with some references.
  • If you are also interested in mesh processing, you can have a look at OpenMesh.

More informations about your goals would definitely help providing more relevant pointers.

ˉ厌 2024-07-14 03:03:47

Google 搜索中的第一个链接会将您带到Jonathan Shewchuk 的网站。 这实际上并不是一个糟糕的起点。 他有一个名为 triangle 的程序,您可以下载该程序进行 2D 三角测量。 该页面上有一个链接,指向创建三角形,包括指向三角测量算法

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

我将从理解 Delaunay 三角剖分开始。 然后也许看看其他一些网格划分算法。

您会在网格生成论文中发现的一些常见主题是

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

3D 网格生成比 2D 困难得多,因此很多论文都在讨论 3D 生成

。网格生成是一个很大的主题。 如果您能提供一些有关您感兴趣的方面(例如 2D 或 3D)的更多信息,那将会很有帮助。如果您能提供一些您想要做什么的想法,那么也许我可以找到一些更好的信息来源。

The first link on your Google search takes you to Jonathan Shewchuk's site. This is not actually a bad place to start. He has a program called triangle which you can download for 2D triangulation. On that page there is a link to references used in creating triangle, including a link to a description of the triangluation algorithm.

There are several approaches to mesh generation. One of the most common is to create a Delaunay triangulation. Triangulating a set of points is fairly simple and there are several algorithms which do that, including Watson's and Rupert's as used in triangle
When you want to create a constrained triangulation, where the edges of the triangulation match the edges of your input shape it is a bit harder, because you need to recover certain edges.

I would start by understanding Delaunay triangulation. Then maybe look at some of the other meshing algorithms.

Some of the common topics that you will find in mesh generation papers are

  • Robustness - that is how to deal with floating point round off errors.
  • Mesh quality - ensuring the shapes of the triangles/tetrahedrons are close to equilateral. Whether this is important depends on why you are creating the mesh. For analysis work it is very important,
  • How to choose where to insert the nodes in the mesh to give a good mesh distribution.
  • Meshing speed
  • Quadrilateral/Hexahedral mesh generation. This is harder than using triangles/tetrahedra.

3D mesh generation is much harder than 2D so a lot of the papers are on 3D generation

Mesh generation is a large topic. It would be helpful if you could give some more information on what aspects (eg 2D or 3D) that you are interested in. If you can give some idea of what you ant to do then maybe I can find some better sources of information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文