2011-10-11 124 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: