Matlab绘制切片图和切片等位线图

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

%% ======切片图和切片等位线图=======

%利用 slice 和 contourslice 表现 MATLAB 提供的无限大水体中水下射流速度数据 flow 。 flow 是一组定义在三维空间上的函数数据。

%在本例中,从图中的色标尺可知,深红色表示“正速度”(向图的左方),深蓝表示“负速度”(向图的右方)。

% 以下指令用切面上的色彩表现射流速度

[X,Y,Z,V]=flow; % 取 4 个 的射流数据矩阵, V 是射流速度。

x1=min(min(min(X)));x2=max(max(max(X))); % 取 x 坐标上下限

y1=min(min(min(Y)));y2=max(max(max(Y))); % 取 y 坐标上下限

z1=min(min(min(Z)));z2=max(max(max(Z))); % 取 z 坐标上下限

sx=linspace(x1+1.2,x2,5); % 确定 5 个垂直 x 轴的切面坐标

sy=0; % 在 y=0 处,取垂直 y 轴的切面

sz=0; % 在 z=0 处,取垂直 z 轴的切面

figure;

slice(X,Y,Z,V,sx,sy,sz); % 画切片图

view([-12,30]);shading interp;colormap jet;axis off;colorbar;

% 以下指令用等位线表现射流速度

v1=min(min(min(V)));v2=max(max(max(V))); % 射流速度上下限

cv=linspace(v1,v2,15); % 在射流上下限之间取 15 条等位线

figure;

contourslice(X,Y,Z,V,sx,sy,sz,cv);view([-12,30]);

colormap jet;colorbar;box on;

下面两段程序均不便上图,自己拿到Matlab里面运行一下看效果吧。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

%% =======动态图形=========

%简单二维示例-彗星状轨迹图

figure;

n=10;t=n*pi*(0:0.0005:1);x=sin(t);y=cos(t);

plot(x,y,'g');axis square;hold on

comet(x,y,0.01);hold off

%卫星返回地球的运动轨线示意

figure;

R0=1; % 以地球半径为一个单位

a=12*R0;b=9*R0;T0=2*pi; %T0 是轨道周期

T=5*T0;dt=pi/100;t=[0:dt:T]';

f=sqrt(a^2-b^2); % 地球与另一焦点的距离

th=12.5*pi/180; % 卫星轨道与 x-y 平面的倾角

E=exp(-t/20); % 轨道收缩率

x=E.*(a*cos(t)-f);y=E.*(b*cos(th)*sin(t));z=E.*(b*sin(th)*sin(t));

plot3(x,y,z,'g') % 画全程轨线

[X,Y,Z]=sphere(30);X=R0*X;Y=R0*Y;Z=R0*Z; % 获得单位球坐标

grid on,hold on,surf(X,Y,Z),shading interp % 画地球

x1=-18*R0;x2=6*R0;y1=-12*R0;y2=12*R0;z1=-6*R0;z2=6*R0;

axis([x1 x2 y1 y2 z1 z2]) % 确定坐标范围

view([117 37]),comet3(x,y,z,0.02),hold off % 设视角、画运动轨线

%色彩变幻‘在 256 色情况下,才可被正确执行.图片刷新可能会卡,单独执行spinmap可查看到效果

figure;

peaks;

spinmap;

1

2

3

4

5

6

7

8

9

10

11

12

%% =======影片动画 =======

%三维图形的影片动画

figure;

shg,x=3*pi*(-1:0.05:1);y=x;[X,Y]=meshgrid(x,y);

R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R;

h=surf(X,Y,Z);colormap(cool);axis off

n=12;mmm=moviein(n); %预设画面矩阵。新版完全可以取消此指令 。

for i=1:n

rotate(h,[0 0 1],25); %是图形绕 z 轴旋转 25 度 / 每次

mmm(:,i)=getframe; %捕获画面。新版改为 mmm(i)=getframe 。

end

movie(mmm,5,10) %以每秒10帧速度,重复播放5

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天Matlab科研工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值