如何在matlab 中用球坐标,柱坐标,编程画图。有相关书籍亦可~

2024-12-25 15:35:49
推荐回答(2个)
回答1:

%画球

r=1;

theta=linspace(0,pi);

phi=linspace(0,2*pi);

[tt,pp]=meshgrid(theta,phi);

x=r.*sin(tt).*cos(pp);

y=r.*sin(tt).*sin(pp);

z=r.*cos(tt);

%上面三句可以改成简单的一句:

%[x,y,z] = sph2cart(pp,pi/2-tt,r);

%其中的变换是matlab的球坐标定义与寻常不同造成的,可以看matlab的帮助

subplot(1,2,1)

mesh(x,y,z)

shading flat

axis square

%%%%%%%%%%%%%%%%%%%%%画柱

subplot(1,2,2)

[X,Y,Z] = cylinder(r,200);

%cylinder的具体用法可见matlab帮助,输入doc cylinder查看帮助

surf(X,Y,Z)

axis square

回答2:

可以用pol2cart将柱坐标转换为笛卡尔坐标
用sph2cart将球面坐标转换为笛卡尔坐标
然后再画即可