Geometry 通过顶点数组多边形检索多边形边

Geometry 通过顶点数组多边形检索多边形边,geometry,Geometry,如果给定四个2d顶点,(0,0)、(0,2)、(3,0)、(4,5) 如何检索多边形的所有边,如下所示 ((0, 0), (0, 2)) ((0, 0), (3, 0)), ((0, 2), (4, 5)), ((3, 0), (4, 5)) 如果我计算出所有可以生成的线段, 将有一些对角线段,如((0,0),(4,5)),((0,2),(3,0)),会导致错误 如何仅检索一般多边形的边段 在数组中写入顶点: col1 col2 ---------

如果给定四个2d顶点,
(0,0)、(0,2)、(3,0)、(4,5)

如何检索多边形的所有边,如下所示

((0, 0), (0, 2)) ((0, 0), (3, 0)), ((0, 2), (4, 5)), ((3, 0), (4, 5))
如果我计算出所有可以生成的线段, 将有一些对角线段,如
((0,0),(4,5)),((0,2),(3,0))
,会导致错误


如何仅检索一般多边形的边段

在数组中写入顶点:

           col1     col2
        -------------------
row1    | A(0,0) | B(0,2) |
        -------------------
row2    | C(3,0) | D(4,5) |
        -------------------

当顶点属于同一行或列时,它们通过线段(而不是对角线)连接。例如,A和C是连接的,因为它们位于
col1
,与C和D相同(
row2
)。B和C不连接,因为它们有不同的列和行。

如果点顺序正确,则多边形的第i条边将第i个顶点与(i+1)个顶点连接,最后一条边将(N-1)个顶点与第0个顶点连接。伪代码:

for i = 0.. N - 2
   Edges[i][0] = Points[i];
   Edges[i][1] = Points[i + 1];
Edges[N-1][0] = Points[N-1];
Edges[N-1][1] = Points[0];

(可以连接for循环内的所有操作,但会失去一些清晰度)

作为2x2数组,当只有两个顶点的行或列相等时,两个顶点通过一个线段连接;对角线将点0,0连接到1,1(其中数字是数组中的坐标)。@gengisdave所以将非零坐标转换为1?所以我应该将顶点转换为二维数组。谢谢在二维数组中绝对没有必要。