如何使用TVTK和Python计算非结构化网格的体积?

时间:2014-01-13 12:20:45

标签: volume vtk delaunay

我正在尝试使用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来检索多边形顶点吗?

提前致谢。 坦率。

1 个答案:

答案 0 :(得分:0)

这是最好的方法吗? scipy.spatial也具有delaunay功能。最近我和两个人一起工作,我会注意到scipy是一个更轻松的依赖,更容易使用,更好地记录。请注意,任何一种方法都适用于pointcloud的凸包,这可能不是您想要的。 scipy版本还可以轻松地计算边界基元,以及其他可能对进一步处理有用的内容。