【问题标题】: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 类,特别是edgesfacesvertices 属性。不幸的是,边缘不包含它们所属的面的列表,因此您必须构建这样的映射,例如

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 中查找映射到单元素列表的所有键。

【讨论】:

    猜你喜欢
    • 2015-12-03
    • 2020-07-22
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2018-10-28
    • 1970-01-01
    相关资源
    最近更新 更多