2012-11-26 38 views
3

如何用Mayavi绘制隐式方程F(x,y,z)= 0?我试过隐式方程和Mayavi

import scipy as np 
x, y, z = np.mgrid[-3:3:100j, -3:3:100j, -3:3:100j] 
F = x**2/3**2 + y**2/2**2 + z**2/4**2 - 1 

from enthought.mayavi import mlab 
mlab.contour3d(F) 
mlab.show() 

但我没有得到椭球的一部分。如果我使用参数化和网格化,那么它没问题,但不知道如何隐式绘制它。

回答

4

使用contours = [0]得到表面F(x,y,z) = 0

import numpy as np 
from enthought.mayavi import mlab 

x, y, z = np.ogrid[-3:3:100j, -3:3:100j, -3:3:100j] 
F = x**2/3**2 + y**2/2**2 + z**2/4**2 - 1 
mlab.contour3d(F, contours = [0]) 
mlab.show() 

enter image description here