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再设置一下图形的各种属性就好了.