2017-05-27 111 views
-1

我發現了一個很好的三角測量樣本:High performance version by Salvatore Previti in C# 2.0Delaunay三角剖分 - 如何防止扭曲的網格?

網格的左側在下圖中扭曲。有什麼方法可以防止它?

triangulation

+0

嗨,我寫的代碼很久以前,主要是用於實驗,10年前左右。 這是一個錯誤,因爲Delaunay三角剖分應該提供一個凸包,最小的CONVEX多邊形包含所有點,並且該多邊形根本不是凸的。 實際上,左上角和左下角之間沒有邊緣。 目前我沒有多少時間來照顧它,無法調試代碼,當然我甚至不記得它的大部分:) –

+0

您是否嘗試過使用相同算法的其他實現並看看是否出現同樣的問題?嘗試http://paulbourke.net/papers/triangulate/c_sharp.zip,看看它是否有相同的錯誤 –

+0

謝謝你的答覆。我會嘗試:http://paulbourke.net/papers/triangulate/c_sharp.zip –

回答

0

可能重複: 所以我已經找到了相對便宜,但不完美的變通。我的超級三角形以編程方式確定爲圍繞網站的邊框而不與其兩側相交。這個想法是由Java的各種令人沮喪的問題引起的,這些問題考慮了我的一些計算的外心座標或座標之間的距離是無限的。這種謹慎讓我的超級三角形變得如此之小,以至於它的頂點有時會落在有效的三角形的外心中。增加超三角形的大小使問題似乎消失。但是,凸包上的三角形可能非常鈍,以致其中一個頂點仍然可能落入有效的外接圓內。

[1] Bowyer-Watson algorithm: how to fill "holes" left by removing triangles with super triangle vertices

+0

我發現在Unity上實現的很好的三角測量樣本。 https://github.com/parahunter/triangle-net-for-unity 它也實現爲DLL:https://triangle.codeplex.com/ –

相關問題