簡體   English   中英

如何將三角形網格化為凸多邊形?

[英]How can I make triangles mesh into a convex polygons?

我有一個三角形網格。 三角形有不同的“顏色”。 像這樣:

在此輸入圖像描述

我需要得到的是優化網格,其中過多的三角形合並為凸多邊形。 像這樣:

在此輸入圖像描述

有人可以給我一些關於某些算法的鏈接來實現嗎? 提前致謝!

PS我正在使用C#。

Hertel-Mehlhorn算法是執行此操作的標准方法; 它可以概括為

  1. 從多邊形P的三角剖分開始;
  2. 刪除不必要的對角線
  3. 重復。

(來自http://www.philvaz.com/compgeom/

這在多項式時間內起作用,並且具有最優性的界限,盡管它不一定是最優的。

在您的情況下,您將通過不考慮不同顏色的三角形之間的對角線來修改步驟#2。

一種通常產生“更漂亮”的片段的啟發式是在每一步合並最長的對角線。

希望有所幫助。

我沒有任何算法鏈接來解決這個問題,但我認為比一次建立一個三角形的凸多邊形更好的方法可能是首先將三角形合並為最大的簡單多邊形(即:它們可以是凹的你可以,然后將這些大的多邊形分成它們的凸形成分。

您知道由於內部角度大於180度,這些分裂將出現在哪些頂點,然后您只需選擇要分割的事件邊緣。 選擇最佳邊緣以進行分割的精確方法不是一個簡單的問題,但合理的啟發式方法可能是在分割后最大化<180度內角的數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM