我有兴趣阅读和理解2D网格算法.在Google上进行的搜索显示了大量的论文和来源,但大多数都是学术性的,在初学者方面并不多.
那么,这里有人会推荐任何阅读资源(适合初学者),或者我可以从一开始就学习的开源实现吗?谢谢.
此外,与三角网格生成相比,我对四边形网格和混合网格(四元组合和三元组合)更感兴趣.
关于Jonathan Shewchuk的网站作为一个很好的起点我大卫的回答.
在开源软件方面,它取决于您正在寻找的内容.
如果您对网格生成感兴趣,可以查看CGAL的代码.理解CGAL代码的低级部分对初学者来说太过分了.然而,即使对于初学者来说,看一下更高级别的算法也会非常有趣.另请注意,CGAL的文档非常详细.
您还可以查看TetGen,但其源代码是单片的,没有记录(它更像是最终用户软件而不是库,即使它也可以简单地从其他程序调用).尽管如此,它仍然具有相当的可读性,并且用户手册包含了网格生成的简短表示,并附有一些参考.
如果您对网格处理也感兴趣,可以查看OpenMesh.
有关您的目标的更多信息肯定有助于提供更多相关指针.
Google搜索的第一个链接会将您带到Jonathan Shewchuk的网站.这实际上不是一个糟糕的起点.他有一个名为triangle的程序,您可以下载它进行2D三角测量.在该页面上有一个指向创建三角形中使用的引用的链接,包括指向三角化算法描述的链接.
网格生成有几种方法.其中最常见的是创建 Delaunay三角剖分.对一组点进行三角测量是相当简单的,并且有几种算法可以做到这一点,包括三角形中使用的Watson和Rupert.当您想要创建一个约束三角剖分时,三角测量的边缘与输入形状的边缘匹配,它是一个有点难,因为你需要恢复某些边缘.
我首先要了解Delaunay三角测量.然后可能会看一些其他网格划分算法.
您将在网格生成论文中找到的一些常见主题是
鲁棒性 - 这是如何处理浮点舍入错误.
网格质量 - 确保三角形/四面体的形状接近等边.这是否重要取决于您创建网格的原因.对于分析工作来说非常重要,
如何选择在网格中插入节点的位置以提供良好的网格分布.
网格化速度
四边形/六面体网格生成.这比使用三角形/四面体更难.
3D网格生成比2D更难,所以很多论文都是关于3D生成的
网格生成是一个很大的主题.如果您可以提供有关您感兴趣的方面(例如2D或3D)的更多信息,将会很有帮助.如果您能够了解您的蚂蚁行为,那么我可以找到更好的信息来源.