0

有谁知道openmesh库是否可以对一个简单的封闭多边形进行三角剖分?

我目前正在创建一个 PolyMesh,其中边界由定义简单闭合多边形的一系列顶点表示。但是,当我将其保存在 .ply 文件中时,我得到了错误的结果。因此,我在考虑是否将多边形面指定为三角形面的集合,但为了做到这一点,我需要先执行三角剖分。

在我看来,openmesh 似乎无法做到这一点,有人知道吗?

供参考。我正在使用 pythonm,另外值得一提的是我的多边形是平面的。

例如,您可以查看以下层:

ply
format ascii 1.0
element vertex 6
property float x
property float y
property float z
element face 4
property list uchar int vertex_indices
end_header
-5 -5 0
5 -5 0
5 10 0
0 10 0
0 5 0
-5 5 0
3 3 4 5
3 0 1 5
3 1 2 5
3 2 3 5

原始顶点:

-5 -5 0
5 -5 0
5 10 0
0 10 0
0 5 0
-5 5 0

生成层的一段代码:

def test_polymesh():

    poly_mesh = om.PolyMesh()
    coords_array = \
        [
            np.array([-5.0, -5.0, 0.0]),
            np.array([5.0, -5.0, 0.0]),
            np.array([5.0, 10.0, 0.0]),
            np.array([0.0, 10.0, 0.0]),
            np.array([0.0, 5.0, 0.0]),
            np.array([-5.0, 5.0, 0.0])
        ]

    vertex_handle = []

    for v in coords_array:
        vertex_handle.append(poly_mesh.add_vertex(v))

    face_handle = poly_mesh.add_face(vertex_handle)
    poly_mesh.triangulate()

    om.write_mesh("test_polymesh.ply", poly_mesh)
4

0 回答 0