Matlab画动图并保存成gif之七——逐渐变大的透明球体+箭头

初步的想法是想做一个点源向空间扩散的示意图。在网上找了好久没找到合适的,就想用Matlab画一个。

要画一个球体,还需要画由点向四面八方辐射的箭头。用到下面这几个函数:

sphere
surf
quiver3

matlab代码如下:

% -------------------
% ---author:laohe---
% -------------------

clc;clear;close all;

layerNum = 30;
[x,y,z]=sphere(layerNum);

figure(1)
for i=1:2:layerNum
    plot(x(i,:),y(i,:));
    axis equal;
    hold on
end
hold off;

h=figure(2)
set(gcf,'Position',get(0,'ScreenSize'));
% set(gcf,'Position',[30 30 1200 300])
for i = 0.1:0.2:4
%     surf(0.02*x,0.02*y,0.02*z,"LineStyle","--",'LineWidth',0.2);
%     alpha(1)
%     hold on
    surf(i*x,i*y,i*z);%绘制球
    hold on
    for m=1:2:layerNum
        for n=1:2:layerNum
            quiver3(0,0,0,i*x(m,n),i*y(m,n),i*z(m,n),"LineWidth",2);
            hold on
        end
    end

    hold off
    axis equal
    alpha(0.05)
    axis([-4 4 -4 4 -4 4])
    drawnow

    f=getframe(gcf);
    imind=frame2im(f);
    [imind,cm] = rgb2ind(imind,256);
    if i == 0.1
        imwrite(imind,cm,'sphere.gif','GIF', 'Loopcount',inf,'DelayTime',0.2);
    else
        imwrite(imind,cm,'sphere.gif','GIF','WriteMode','append','DelayTime',0.2);
    end
end

画出来的动图如下所示:
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值