簡體   English   中英

查找頂點邊(多邊形)的最佳算法

[英]Best Algorithm to find the edges (polygon) of vertices

我有一大堆頂點,其中一些是邊,一些是冗余的(在形狀內)我想刪除它們。

我能想到的最簡單的算法是,如果它們碰到其他人形成的形狀,則逐個檢查。 但它應該是一個非常慢的算法。

我想過從邊緣挑選一個(距離每個例子最遠的一個)並計算從這個開始的最長路徑...應該得到邊緣路徑,對嗎?

有什么建議嗎?

多面體算法的技巧是選擇一個適合您的輸入和所需輸出的技巧,因為有多種方法來表示多面體,並且表示之間的轉換可能很昂貴。 在這種情況下,您從點開始並希望以頂點結束,因此用於計算凸包頂點的Graham掃描算法應該可以解決問題,盡管可能需要花費一些精力才能將其擴展到2-D情況。 它是輸入頂點數量的O( n log n )。

我不知道找到該多邊形的最佳算法是什么,但您正在尋找的多邊形稱為“凸殼”。

通過搜索,您應該找到匹配的算法。

Convex Hull是計算幾何中研究較多的問題之一。 Graham Scan是一種更簡單的凸殼算法 ,但肯定不是唯一的算法 禮品包裝算法 ,也稱為賈維斯三月,是我所知道的最簡單的。 Stony Brook算法庫在C和C ++中有幾種凸包算法。 幾何在行動中主要顯示凸殼的應用。 這是一組低維任意維凸殼計算程序。

暫無
暫無

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

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