【问题标题】:Detecting border of plane in Blender Python API在 Blender Python API 中检测平面的边界
【发布时间】:2012-02-06 20:02:40
【问题描述】:
我正在编写一个从平面生成建筑物的脚本。虽然普通平面是矩形,但它很容易 - 您正在寻找大多数顶点 -/+X、-/+Y、-/+Z,但是如果平面不是规则形状怎么办? Blender中的python api中有一个很好的简单解决方案吗?
事实上,有什么聪明的方法可以检测边界上的面/边/顶点吗?
【问题讨论】:
标签:
python
blender
blender-2.50
【解决方案1】:
寻找边界边缘:这些将仅连接到一个面上。查看Mesh 类,特别是edges、faces 和vertices 属性。不幸的是,边缘不包含它们所属的面的列表,因此您必须构建这样的映射,例如
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 中查找映射到单元素列表的所有键。