0

我有一个用于表示形状/网格的 3D 网格,它使用 bool 类型的 ndarray(20,20,20) 在 python 中表示。网格中的每个元素代表材料的存在或不存在。我希望能够检查给定的网格是否代表从网格顶部一直连接到底部的形状。我希望能够丢弃那些断开连接或不占用从网格顶部到底部的连续单元格的那些。

在稍后阶段,我使用 trimesh 将网格转换为网格。有什么方法可以直接在 python 中或通过 trimesh 识别上述内容?

4

1 回答 1

0

我首先编写一个辅助函数bucket_fill_2d(),该函数接受一个带有material信息的切片,并且给定一个起始索引(i,j),桶像在任何旧的绘图程序中一样填充材料。

  1. 引入形状的空布尔数组connected
  2. 在数组底部切片的True任何位置设置底部切片。materialTrue
  3. 然后上一步bucket_fill_2d()connected (i,j)从上一步开始。
  4. 重复 (3) 直到到达顶部。
  5. connected检查顶部切片是否有任何东西。

请注意,trimesh,顾名思义,只支持三角形单元格。

于 2020-04-03T15:16:10.937 回答