Mayavi surf

日期2007-02-20 (最后修改), 2006-12-04 (创建)

如果你想绘制一个以矩阵的点的高度和颜色来表示矩阵的曲面,你需要将矩阵数据转换为 !MayaVi2 可以理解的 3D 数据。 [:Cookbook/MayaVi/mlab:mlab] 知道如何做到这一点,但它没有 !MayaVi2 那样友好的用户界面。以下脚本使用 mlab 创建一个 !SurfRegular 对象,然后将其加载到 !MayaVi2 中。该脚本的更详细版本在示例页面 [:Cookbook/MayaVi/Examples] 中给出。

In [ ]
import numpy
def f(x, y):
    return numpy.sin(x*y)/(x*y)
x = numpy.arange(-7., 7.05, 0.1)
y = numpy.arange(-5., 5.05, 0.05)
from enthought.tvtk.tools import mlab
s = mlab.SurfRegular(x, y, f)
from enthought.mayavi.sources.vtk_data_source import VTKDataSource
d = VTKDataSource()
d.data = s.data
mayavi.add_source(d)
from enthought.mayavi.filters.warp_scalar import WarpScalar
w = WarpScalar()
mayavi.add_filter(w)
from enthought.mayavi.modules.outline import Outline
from enthought.mayavi.modules.surface import Surface
o = Outline()
s = Surface()
mayavi.add_module(o)
mayavi.add_module(s)

你可以通过运行 "mayavi2 -n -x script.py"、通过菜单加载它(文件 -> 打开文件)并按 Ctrl+R,或者在 python shell 中输入 "execfile('script.py')" 来运行此脚本。

章节作者: GaelVaroquaux, Unknown[41], Unknown[132]

附件