2011-10-11 128 views
2

我想在多邊形函數中使用VB6創建多邊形。從多個點創建多邊形的算法VB6

我有很多隨機順序的點,我想創建多邊形。

不幸的是,當開發一個多邊形時,順序很重要,因爲我得到一個鋸齒狀的多邊形,而不是一個很好的封閉多邊形。

我想知道是否有人有任何好的想法/技巧來開發一個算法,可以通過這些點,並把他們在一個適當的順序。

非常感謝!

+0

相關:http://stackoverflow.com/questions/828905/polygon-enclosing-a-set-of-points – Kevin

回答

4

我使用格雷姆掃描算法來實際進行並解決這個問題。

http://en.wikipedia.org/wiki/Graham_scan

如果按照僞代碼,要小心。

while ccw(points[M-1], points[M], points[i]) <= 0: 

應該

while ccw(points[M-1], points[M], points[i]) >= 0: