我正在尝试使用mayavi和tvtk来计算非结构化网格的体积。我的想法是通过Delaunay3d-Filter对Point云进行四面体化。然后我需要以某种方式从这个数据集中提取四面体,同时忽略其他细胞类型,如线和三角形。 但是我怎么能做到这一点?到目前为止,我的Python代码如下所示:
import numpy as np
from mayavi import mlab
x, y, z = np.random.random((3, 100))
data = x**2 + y**2 + z**2
src = mlab.pipeline.scalar_scatter(x, y, z, data)
field = mlab.pipeline.delaunay3d(src)
我可以使用field-object来检索多边形顶点吗?
提前致谢。 坦率。
答案 0 :(得分:0)
这是最好的方法吗? scipy.spatial也具有delaunay功能。最近我和两个人一起工作,我会注意到scipy是一个更轻松的依赖,更容易使用,更好地记录。请注意,任何一种方法都适用于pointcloud的凸包,这可能不是您想要的。 scipy版本还可以轻松地计算边界基元,以及其他可能对进一步处理有用的内容。