MATLAB三维绘图避坑

上课需要把一些公式画成三维的图形方便理解,第一次尝试使用matlab绘图,看了几篇博客后再进行尝试,但是还是踩了很多雷,浪费了一点时间。
要画的公式是球坐标系下的 sin ⁡ 2 θ \sin^2θ sin2θ
首先尝试在极坐标系中绘图。

theta = -pi/2 : pi/50 : pi/2;
p = 1 - power(sin(theta),2);
polar(theta,p);

得到的图是这样的
极坐标下的sin^2
看起来不太好看,转化成笛卡尔坐标系,添加代码

[x,y] = pol2cart(theta,p);
subplot(1,2,2);
plot(x,y);
axis([0 1 -0.5 0.5]);

在这里插入图片描述
理解了怎么画平面图后,下面着手画三维图

%数据准备
theta = -pi/2 : pi/50 : pi/2;   
fi = 0 : pi/50 : pi;   
[FI,TH] = meshgrid(fi,theta); 
r = 1 + power(sin(TH),2);
[X,Y,Z] = sph2cart(FI,TH,r);
C = sqrt(X.^2 + Y.^2);

%绘图
figure;
S = surf(X,Y,Z,C);
%S.FaceAlpha = 0.5;
view(3);
colorbar;
shading interp;
title('sin^2x');
xlabel('x');
ylabel('y');
zlabel('z');

执行后得到的图片是这样的
在这里插入图片描述
这里的代码中要注意一个很大的坑,就是球坐标系中的θ角。在高数中θ的定义是与Z轴的夹角,取值范围是[0,Π],但是这里的θ和极坐标的定义是差不多的,是和xy平面的夹角,取值范围是±pi/2,所以这里稍不留神就会踩进这个坑里面。
现在,运用matlab,可以画各种三维图了。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值