Geometry 通过顶点数组多边形检索多边形边
如果给定四个2d顶点,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 ---------
(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?所以我应该将顶点转换为二维数组。谢谢在二维数组中绝对没有必要。