2012-01-10 19 views
0

我正在研究一个从飞机上生成建筑物的脚本。虽然正常的平面是矩形,但它非常容易 - 您正在寻找最多的顶点 -/+ X, -/+ Y, -/+ Z,但如果平面不规则?在Blender的python api中有一个很好的简单解决方案吗? 事实上,有没有什么聪明的方法来检测边界上的面/边/顶点?在Blender Python中检测飞机的边界API

+0

嗨,你完成了这个项目吗? – kraysak 2017-11-07 16:52:39

+0

是的,我确实 - 不记得如果这个问题被用在它里面 – raistlin 2017-11-09 08:57:06

回答

1

寻找边框边缘:这些将只是附加到一个面上的边缘。查看Mesh类,具体为edges,facesvertices属性。不幸的是,边缘不包含它们所属的面的列表,所以你将不得不构建这样的映射,例如,

EdgeFaces = {} # mapping from edge to adjacent faces 
for ThisFace in TheMesh.faces : 
    for ThisEdge in ThisFace.edge_keys : 
     if not ThisEdge in EdgeFaces : 
      EdgeFaces[ThisEdge] = [] 
     #end if 
     EdgeFaces[ThisEdge].append(ThisFace.edge_keys) 
    #end for 
#end for 

然后,您只需通过EdgeFaces查看映射到单元素列表的所有键即可。