python中具有shapely的多多边形三角形网格/网格

python中具有shapely的多多边形三角形网格/网格,python,graphics,polygon,triangulation,shapely,Python,Graphics,Polygon,Triangulation,Shapely,我想做一个三角形的多边形网格,使用shapely 我有一个坐标点列表,每个点有两个坐标,还有一个连接列表 import numpy as np import shapely.geometry as geometry xlen = 20 ylen = 20 x0=0 y0=0 xPoints = np.arange(x0,xlen+1,1) yPoints = np.arange(y0,ylen+1,1) GridPoints = np.array([[[x,y] for x in xPoi

我想做一个三角形的多边形网格,使用shapely

我有一个坐标点列表,每个点有两个坐标,还有一个连接列表

import numpy as np
import shapely.geometry as geometry


xlen = 20
ylen = 20
x0=0
y0=0
xPoints = np.arange(x0,xlen+1,1)
yPoints = np.arange(y0,ylen+1,1)

GridPoints = np.array([[[x,y] for x in xPoints] for y in yPoints])

triangles = [[i+j*(ylen+1),
      (i+1)+j*(ylen+1),
      i+(j+1)*(ylen+1)] for i in range(ylen) for j in range(xlen)]

多边形是必需的,因为我以后需要针对x和y优化该网格,以便用尽可能多的三角形填充另一个多边形。

我希望您希望用三角形完全填充该区域。你的三角形只是其中的一半。如果您只想要您的那一半,只需注释掉for循环的第二部分

import numpy as np
from shapely.geometry import Polygon
from geopandas import GeoSeries

xlen = 20
ylen = 20
x0 = 0
y0 = 0
xPoints = np.arange(x0, xlen + 1, 1)
yPoints = np.arange(y0, ylen + 1, 1)

GridPoints = list((x, y) for x in xPoints for y in yPoints)

triangles = []  # list of triangles to be populated
for i in range(ylen):
    for j in range(xlen):
        # triangles with perpendicular angle on the bottom left
        triangles.append([i + j * (ylen + 1), (i + 1) + j * (ylen + 1), i + (j + 1) * (ylen + 1)])
        # triangles with perpendicular angle on the top right
        triangles.append([(i + 1) + j * (ylen + 1), i + (j + 1) * (ylen + 1), (i + 1) + (j + 1) * (ylen + 1)])

polygons = []  # list of polygons to be populated
for triangle in triangles:
    polygon = Polygon([GridPoints[triangle[0]], GridPoints[triangle[1]], GridPoints[triangle[2]]])
    polygons.append(polygon)
gs = GeoSeries(polygons)  # save polygons to geopandas GeoSeries
我正在将您的形状优美的多边形保存到GeoPandas GeoSeries中。结果如下所示: