问题描述
我可以在下面的代码中输出一个点的坐标,但无法访问 face 属性。我是不是用错了方法?
import openmesh as om
import numpy as np
mesh = om.TriMesh()
# add a a couple of vertices to the mesh
vh0 = mesh.add_vertex([0,1,0])
vh1 = mesh.add_vertex([1,0])
vh2 = mesh.add_vertex([2,0])
vh3 = mesh.add_vertex([0,-1,0])
vh4 = mesh.add_vertex([2,0])
# add a couple of faces to the mesh
fh0 = mesh.add_face(vh0,vh1,vh2)
fh1 = mesh.add_face(vh1,vh3,vh4)
fh2 = mesh.add_face(vh0,vh1)
# add another face to the mesh,this time using a list
vh_list = [vh2,vh4]
fh3 = mesh.add_face(vh_list)
# 0 ==== 2
# |\ 0 /|
# | \ / |
# |2 1 3|
# | / \ |
# |/ 1 \|
# 3 ==== 4
# get the point with vertex handle vh0
point = mesh.point(vh0)
# get all points of the mesh
point_array = mesh.points()
for x in mesh.vertices():
print(x)
print(x.idx())
print(mesh.point(x))
for x in mesh.faces():
print(x)
print(x.idx())
#print(mesh.face(x)) <== THIS LINE THROWS ERROR
解决方法
face_array = mesh.face_vertex_indices()
这是有效的方法。