问题描述
我知道我应该使用函数slice
还是不是?简而言之,如果我具有z的功能,我怎么不使用V
?
解决方法
我认为没有内置的函数可以绘制这样的图形,而slice
函数绝对不是这样做的。但是,您可以使用patch
绘制几个单独的补丁来获得所需的结果:
使用X和X的元素绘制一个或多个填充的多边形区域 Y作为每个顶点的坐标。补丁连接顶点 您指定它们的顺序。要创建一个多边形,请指定X和 Y作为向量。 要创建多个多边形,请将X和Y(和Z )指定为矩阵 每列对应一个多边形。
nS = 19; % number of slices
ygv = linspace(-2,2,nS); % position of slices on Y axis
xgv = linspace(-2,100); % position of points on each curve
[X,Y] = meshgrid(xgv,ygv);
Z = X.^2+Y.^2;
% adding two points with z=0 at both ends of each curve
X = [X(:,1),X,X(:,end)];
Y = [Y(:,Y,Y(:,end)];
Z = [zeros(nS,Z,zeros(nS,1)];
patch('Xdata',X','Ydata',Y','Zdata',Z','facecolor',[1 1 1]*0.9);
xlabel('x'),ylabel('y'),zlabel('z')
title('z=x^2+y^2')
grid on
view(3)