问题描述
我需要绘制x = cos(u)* cos(v),y = cos(v)* sin(u),z = -sin(v)其中u,v都来自(0,\ pi )。我看过fplot3
函数,但它只接受一个参数。任何人都可以指向某些功能,或者还有其他方式,例如编写脚本进行绘图?
解决方法
您可以将fsurf
用于参数化曲面图。 fsurf
接受两个输入,u
和v
。
% your functions
f_x = @(u,v) cos(u).*cos(v);
f_y = @(u,v) cos(v).*sin(u);
f_z = @(u,v) -sin(v);
% plot
umin = 0;
umax = pi;
vmin = 0;
vmax = pi;
figure(1); clf;
fsurf(f_x,f_y,f_z,[umin umax vmin vmax])
您还可以签出fcontour
和fmesh
。
我会为此使用meshgrid
u = linspace(0,pi,51);
v = linspace(0,51);
[U,V] = meshgrid(u,v);
X = cos(U).*cos(V);
Y = sin(U).*cos(V);
Z = -sin(V);
然后,您可以根据需要将其绘制为网格(使用mesh(X,Y,Z)
)或一组线(例如,通过plot3(X',Y',Z')
显示)