有谁知道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)