高效的Delaunay三角剖分

时间:2011-09-05 14:37:20

标签: c# .net triangulation delaunay

我正在寻找一种.NET实现,它可以从一组点构建Delaunay三角剖分。

我已经测试了几个实现,但它们只能用于少量点(最多20,000个)。

我需要能够在合理的时间内处理500,000点的东西。

5 个答案:

答案 0 :(得分:17)

如果要构建2D Delaunay三角剖分,请使用 Triangle.Net 。它是Shewchuk着名的Triangle计划的直接C#端口。

答案 1 :(得分:13)

我一直在找同样的东西,我发现了一个名为MIConvexHull的C#4.0库:

“用于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/Triangulation.cs

答案 2 :(得分:1)

您是否尝试过NetTopologySuite

答案 3 :(得分:1)

有一个C#实现可以帮助您生成Voronoi图以及Delaunay三角剖分:http://www.codeproject.com/Articles/11275/Fortune-s-Voronoi-algorithm-implemented-in-C

答案 4 :(得分:1)

有一个名为G#的解决方案。

它有Delaunay三角测量(也有断裂线)。从他们网站上的性能图表中,您应该可以在大约30秒内对500k点进行三角测量。