这个函数如何用matlab在三维坐标中画出
1个回答
展开全部
主要思想是利用球坐标系,代码如下:
P=1000;
S=[100 50 20 10];
aa=pi*linspace(0,1.5,200);%为了看清楚内部,只画了3/4圆周,全部是pi*linspace(0,2,100)
bb=0.5*pi*[-logspace(0,-1.2,50),0,logspace(-1.2,0,50)];%b=0是无意义的,此处的数据为NaN,可以用于断图
[a,b]=meshgrid(aa,bb);
figure
hold on
for h=3*P./S/2/pi
r=h*(abs(sin(b))).^(-3/5);%题目中公式的等价变形
x=r.*cos(b).*cos(a);
y=r.*cos(b).*sin(a);
z=r.*sin(b);
surf(x,y,z)
end
view([30 10])
shading interp
light('Position',[-1 -1 1])
lighting gouraud
axis off
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询