Python Meshpy三角形-复合几何体

Python Meshpy三角形-复合几何体,python,mesh,shapely,Python,Mesh,Shapely,从技术上讲,是否可以从两个未连接的几何体(所提供几何体的所有区域之间没有连接)生成具有Meshpy的网格 具体来说,我通过Shapely创建几何图形,如下所示: s = Polygon(shell=[[-1, -1], [1, -1], [1, 1], [-1, 1]], holes=[[[-0.5, -0.5], [-0.25, -0.5], [0, 0], [-0.25, 0]], [[0.1, -0.0]

从技术上讲,是否可以从两个未连接的几何体(所提供几何体的所有区域之间没有连接)生成具有Meshpy的网格

具体来说,我通过Shapely创建几何图形,如下所示:

    s = Polygon(shell=[[-1, -1], [1, -1], [1, 1], [-1, 1]],
                holes=[[[-0.5, -0.5], [-0.25, -0.5], [0, 0], [-0.25, 0]],
                       [[0.1, -0.0], [0.25, -0.0], [.5, 0.5], [.3, 0.3]]]
                )
    t = Polygon(shell=[[2, -1], [4, -1], [4, 1], [2, 1]])
    r = Polygon(shell=[[5, -1], [7, -1], [7, 1], [5, 1]])
然后我用这三个单一多边形创建了一个多多边形

multipolygon = Multipolygon([r,s,t])
我的啮合代码如下所示:

def mesh(
    points,
    facets,
    holes,
    control_pts,
    mesh_sizes,
):
    mesh = triangle.MeshInfo()  # create mesh info object
    mesh.set_points(points)  # set points
    mesh.set_facets(facets)  # set facets
    mesh.set_holes(holes)  # set holes

    # set regions
    mesh.regions.resize(len(control_pts))  
    region_id = 0  

    for (i, cp) in enumerate(control_pts):
        mesh.regions[i] = [cp[0], cp[1], region_id, mesh_sizes[i]]
        region_id += 1

    mesh = triangle.build(
        mesh,
        min_angle=20,
        mesh_order=2,
        quality_meshing=True,
        attributes=True,
        volume_constraints=True,
    )

    return msh
但不幸的是,我自动出现了以下错误:

self.holes[i] = hole
ValueError: value must be a sequence of length self.unit
你有解决这个问题的办法吗

谢谢大家!