高效德劳内三角剖分
本文关键字:三角剖分 高效 | 更新日期: 2023-09-27 18:07:29
我正在寻找一个。net实现,它从一组点构建Delaunay三角测量。
我已经测试了几个实现,但它们都只适用于少量点(最多20,000)。
我需要一个能在合理时间内处理500,000点的东西
如果要构建2D Delaunay三角测量,请使用Triangle.Net。它是Shewchuk著名的Triangle程序的直接c#移植。
我正在寻找同样的东西,我发现了一个c# 4.0库名为MIConvexHull:
"一个2D、3D和更高维度的凸包算法和库。该代码还可用于计算输入数据的Delaunay三角剖分和Voronoi网格。基准测试表明,凸包代码和4维及更高维度的三角测量代码与c++库CGAL提供的解决方案相当或更好。"
http://miconvexhull.codeplex.com/2016年9月更新:
这个库已经转移到Github上,看起来它现在是在MIT许可下发布的(一些例子是GPL)。你可以在这里找到最新版本:
https://github.com/DesignEngrLab/MIConvexHull文档实际上在源代码中,它很容易使用。以下是Delaunay三角测量的相关源文件:
https://github.com/DesignEngrLab/MIConvexHull/blob/master/MIConvexHull/Triangulation.cs如果你想看2012年的原版。请看这里:
http://miconvexhull.codeplex.com/SourceControl/changeset/view/e1b26677eb1a MIConvexHull/三角/Triangulation.cs
您试过netopologysuite吗
有一个c#实现可以帮助您生成Voronoy图以及Delaunay三角测量:http://www.codeproject.com/Articles/11275/Fortune-s-Voronoi-algorithm-implemented-in-C
有一个解决方案叫做g#。
它有Delaunay三角剖分(也有断线)。根据他们网站上的性能图表,你应该能够在大约30秒内三角测量50万个点。