我有以下形状优美的像素多边形
big_poly = Polygon([(94.5, 77.0),
(92.5, 53.0),
(87.5, 45.0),
(66.0, 20.5),
(9.0, 3.5),
(5.5, 6.0),
(4.5, 13.0),
(7.5, 26.0),
(6.5, 91.0),
(8.0, 92.5),
(16.0, 92.5),
(44.0, 86.5)])
我需要填写big_poly
对于 4 x 6 像素多边形,让它们全部落在大多边形的边界内并平行于其最小轴(相同的旋转)。
解决方案here https://stackoverflow.com/questions/44399749/get-all-lattice-points-lying-inside-a-shapely-polygon感谢@Georgy,肯定有帮助。
所以我能够执行以下操作:
使用以下代码:
b = building_poly.boundary
points = []
for x in range(int(np.floor(xmin)), int(np.ceil(xmax)), 4):
for y in range(int(np.floor(ymin)), int(np.ceil(ymax)), 6):
points.append((x, y))
points = MultiPoint(points)
result = points.intersection(building_poly)
并绘制中的点result
,但现在我需要从这些点创建多边形。
如何将这些点变成矩形多边形?
我还发现this https://stackoverflow.com/questions/63876018/cut-a-shapely-polygon-into-n-equally-sized-polygons,但不确定如何使其适合我的情况。