ポイントのセットからDelaunayの三角形分割を構築する.NET実装を探しています。
すでにいくつかの実装をテストしましたが、それらはすべてわずかなポイント(最大20,000)でしか機能しませんでした。
妥当な時間で500,000ポイントを処理できるものが必要です。
2D Delaunay三角形分割を作成する場合は、Triangle.Netを使用します。これは、Shewchukの有名な Triangle プログラムの直接C#ポートです。
私は同じものを探していましたが、MIConvexHullというC#4.0ライブラリを見つけました。
「2D、3D、およびそれ以上の次元の凸包アルゴリズムとライブラリ。このコードは、入力データのドロネー三角形分割とボロノイメッシュの計算にも使用できます。ベンチマークは、凸包コードと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年のオリジナルバージョンをご覧になりたい場合は、こちらをご覧ください。
試しましたか NetTopologySuite
Delonay三角形分割と同様にボロノイ図を生成するのに役立つC#実装があります: http://www.codeproject.com/Articles/11275/Fortune-s-Voronoi-algorithm-implemented-in-C
G# と呼ばれる解決策があります。
Delaunayの三角形分割(ブレークラインも含む)があります。 Webサイトのパフォーマンスグラフから、約30秒で500,000ポイントを三角測量できるはずです。