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 © 2024
京ICP备05028076号