Python和科学计算认证群组  - 讨论区

标题:如何用Mayavi绘制漂亮的球体和圆柱体

2011年12月06日 星期二 13:28

刚刚接触Mayavi,想绘制一个漂亮的球体,但是看了例子,用mlab.points3d绘制的球体,感觉不圆滑,如何能绘制一个漂亮的球体那?如何绘制圆柱体。

2011年12月06日 星期二 14:42

我写了一个例子:

http://hyry.dip.jp/code.py?id=116

或者也可以这样做。

 

import enthought.mayavi.mlab as mlab

sphere = mlab.points3d(0, 0, 0)

sphere.glyph.glyph_source.glyph_source.set(theta_resolution=64, phi_resolution=64)

clinder = mlab.points3d(1, 0, 0)

clinder.glyph.glyph_source.glyph_source = clinder.glyph.glyph_source.glyph_dict['cylinder_source']

clinder.glyph.glyph_source.glyph_source.set(resolution=64, radius=0.5)

mlab.show()

mayavi有录制宏的功能,你录制宏之后,就可以知道如何设置各种对象的属性了。

 

2011年12月06日 星期二 15:57

很感谢,有学习Mayavi的资料吗?在网上没发现。谢谢。

2011年12月06日 星期二 16:08

资料的话,就是Mayavi的手册:http://github.enthought.com/mayavi/mayavi/

或者看我写的《Python科学计算》,这本书很快就要出版了。

2011年12月06日 星期二 16:14

你也可以查看帮助在IPython下输入:

>>> mlab.points3d?

points3d有一些可选参数,可以设置形状和分辨率,因此下面的程序也可以达到目的:

import enthought.mayavi.mlab as mlab

 

mlab.points3d(0, 0, 0, resolution=64, mode="sphere")

mlab.points3d(1, 0, 0, resolution=64, mode="cylinder")

2011年12月06日 星期二 17:21

多谢。如果mode是cylinder的话,那个参数可以改变cylinder的方向。

2011年12月06日 星期二 19:47

这个有两种方案,可以在Mayavi pipeline中添加一个Transform data的filter,如下图,至于具体程序如何写,你可以用那个红色的图标录制脚本,然后分析自动生成的宏:

或者你可以修改surface的actor的属性:

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号