p=patch(isosurface(x,y,z,f,0.patch xiexie
2个回答

f=@(x,y,z)x.^2+y.^2+z.^2-10;%定义函数f=x^2+y^2+z^2-10

[x,y,z]=meshgrid(linspace(-4,4,25));%设定格子大小和范围

val=f(x,y,z);

[p,v]=isosurface(x,y,z,val,0);%用isosurface得到函数f=0图形的点和面

patch('faces',p,'vertices',v,'facevertexcdata',jet(size(v,1)),'facecolor','w','edgecolor','flat');%用patch绘制三角网格图并设定色彩

view(3);grid on;axis equal

上面就是一个画三维图的例子.利用isosurface和patch可以画隐函数的图.

p=patch(isosurface(x,y,z,f,0.5));

f=f(x,y,z),现在需要画f(x,y,z)=0.5这样一个隐函数.

首先用isosurface生成网格.然后patch用isosurface生成的数据画出图形.

下面你用set再设置一下图形的各种属性就好了.