实现1:


[x,y,z]=meshgrid(linspace(-3,3));
v=(x.^2+(9/4).*y.^2+z.^2 - 1).^3-x.^(2).*z.^3-(9/80).*y.^2.*z.^3;
isosurface(x,y,z,v,0);
set(patch(isosurface(x,y,z,v,0)),'facecolor','r','edgecolor','none','facelighting','gouraud')
axis equal;
grid on;


12.png


实现2:


f=@(x,y,z)(x.^2+ (9./4).*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (9./80).*y.^2.*z.^3;
[x,y,z]=meshgrid(linspace(-3,3));
val=f(x,y,z);
[p,v]=isosurface(x,y,z,val,0);
patch('faces',p,'vertices',v,'facevertexcdata',jet(size(v,1)),'facecolor','w','edgecolor','flat');
view(3);grid on;axis equal;


123.png