Lat长顶点的顺序列表,用于在C#中形成多边形

时间:2014-06-25 05:49:19

标签: c# algorithm polygons non-convex

我有Lat long列表,它围绕中心点形成一个多边形。我希望顺时针顺序排列Lat-Long列表,以便在该有序列表中连接Lat-Long Vertices并形成非凸多边形。

1 个答案:

答案 0 :(得分:1)

从一组顶点生成多边形的定义不明确,如下例所示。

A = ( 0, 0)
B = ( 3,-3)
C = ( 6,-1)
D = ( 4,-1)
E = ( 4, 1)
F = ( 6, 1)
G = ( 3, 3)

顺时针形成多边形的一种可能性是

A-G-F-E-D-C-B-A

和订购

A-G-E-F-C-D-B-A

是另一个。第一个多边形是凹的,第二个是凸的。如果移除A并且其余点在轴G-B处镜像,则甚至可以从给定的顶点集定义两个非凸多边形。更确切地说, 顶点集将是

B = ( 3,-3)
C = ( 6,-1)
D = ( 4,-1)
E = ( 4, 1)
F = ( 6, 1)
G = ( 3, 3)

E' = ( 2, 1)
F' = ( 0, 1)
D' = ( 2,-1)
C' = ( 0,-1)

和两个不同的多边形是

G-E-F-C-D-B-C'-D'-E'-F'-G

G-F-E-D-C-B-D'-C'-F'-E'-G

但是,如果一个人对给定顶点的凸包多边形(凸包边界)感兴趣,则有许多不同的algorithms来计算它。