在Python中,我如何将3D等值面导出到Blender?

4

我在Python中有一些3D(x,y,z,value)数据,并且可以在Mayavi中可视化等值面。如何将这个等值面导出到一个文件中,以便我可以将其读入Blender中?

以下是示例代码:

import numpy
from mayavi import mlab

x, y, z = numpy.ogrid[-5:5:64j, -5:5:64j, -5:5:64j]
values = x * x * 0.5 + y * y + z * z * 2.0
mlab.contour3d(values, contours=[.5])
mlab.show()

回答这个问题可能会有助于未解决的http://stackoverflow.com/questions/23122004/how-to-write-stl-file-within-python-mayavi - timday
2个回答

7
使用@timday的建议,我添加了以下代码以在波前格式(.obj)中保存等值面:
mlab.savefig('surface.obj')
然后,我可以通过文件>>导入>>波前(.obj)在Blender中打开它。
我不得不将图像缩小很多(约100倍),才能在Blender视口中看到它。
原点设置在实际对象的一侧,因此如果我使用对象>>变换>>原点到几何体,则更容易处理对象。
在添加一些照明和平面之后,对象看起来相当不错!

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接