我构造了一个具有以下形状的shapely多边形
POLYGON ((28 0, 28 68, 44 68, 44 58, 46 0, 38 45, 46 0, 41 34, 46 0, 42 24, 46 0, 46 7, 46 0, 28 0))我编写了一个代码来检查某个点是否包含在多边形中。由于某些原因,点的消去过程并不能移除多边形以外的所有点。
输出如下:虚线表示多边形角。
例如,44.5,44.5点在多边形之外,但仍未被消除。
def getFieldGridPoints(pitchX, pitchY, poly):
gridPoints = []
for i in range(1, pitchX + 1, 1):
for j in range(1, pitchY + 1, 1):
gridPoints.append(geometry.Point(i - 0.5, j - 0.5))
finalGrid = []
for p in gridPoints:
if poly.contains(p):
finalGrid.append([p.x, p.y])
print(finalGrid)
return finalGrid在getFieldGridPoints之后执行的代码只考虑到finalGrid中的网格点。由于点,例如44.5,44,5没有消除,着色过程发生。
对带有poly.contains(p)的p = geometry.Point(44.5,44.5)的单数调用返回False。所以我不明白为什么它在循环中没有被激活。
发布于 2022-06-02 11:17:20
多边形的第五个拐角是不正确的。这就是为什么它没有正确地作图。问题解决了。
对于POLYGON ((28 0, 28 68, 44 68, 44 58, 38 45, 46 0, 41 34, 46 0, 42 24, 46 0, 46 7, 46 0, 28 0)),它起了作用。
https://stackoverflow.com/questions/72475115
复制相似问题