41

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

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

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

4

5 回答 5

20

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

于 2013-07-04T03:22:32.497 回答
16

我一直在寻找同样的东西,我发现了一个名为 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

于 2012-08-17T17:47:05.750 回答
2

您是否尝试过NetTopologySuite

于 2012-01-28T11:48:22.987 回答
1

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

于 2012-03-01T19:16:55.160 回答
1

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

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

于 2012-11-04T22:58:07.303 回答