首页/文章/ 详情

matlab绘制农夫过河动态图

3年前浏览5215

仿真秀平台一直有做针对于matlab入门的公开课,算法工匠带你学MATLAB基础课程入门一段时间后我们就可以用

matlab做一下有意思的事比如说画个动态图:

是不是很神奇,使用好matlab动态绘图技能可以做很多有意义的是,关于动态绘图主要使用到以下几个命令:

第一种方法需要使用到的命令有:

getframe:是图像动态化,将每一帧的画面数据转换为列向量储存在自定义矩阵中。

movie:播放储存的自定义矩阵中的画面数据。

用这两个命令就可以绘制正弦函数的动态变化了 。代码如下:

clc,clear,close all % 清存
warning off         % 取消警告
feature jit off     % 加速代码执行
x=-8:0.1:8;              
y=sin(x);
figure1 = figure;
axes1 = axes('Parent',figure1,'Position',[0.12 0.12 0.8 0.8]);
plot(x,y,'LineWidth',2);
% 创建 arrow
annotation(figure1,'arrow',[0.52 0.52],[0.12 0.90],'LineWidth',2);
annotation(figure1,'arrow',[0.12 0.90],[0.52 0.52],'LineWidth',2);
set(axes1,'GridColor',[0 0 0],'MinorGridColor',[0.101960784313725 0.101960784313725 0.101960784313725],'XColor',[1 1 1],'YColor',[1 1 1]);
%fmat=moviein(20);          %创建一个动画的矩阵,保存20祯
gg = 1;
for j=1:30;   
    plot(x,0.1*j*y,'LineWidth',2); %循环创建动画数据 
    text('Parent',axes1,'FontSize',16,'FontName','Times New Roman','Interpreter','latex','String','$$y=A*sin(x)$$','Position',[-5 2 0],'Visible','on');
    text('Parent',axes1,'FontSize',16,'FontName','Times New Roman','Interpreter','latex', 'String','$$x$$','Position',[5 -0.2 0],'Visible','on'); 
    axis([-8 8 -3 3])  
    set(axes1,'GridColor',[0 0 0],'MinorGridColor',[0.101960784313725 0.101960784313725 0.101960784313725],'XColor',[1 1 1],'YColor',[1 1 1]);
    fmat(:,j)=getframe;           %拷贝祯到矩阵fmat中
      im = frame2im(getframe);
    [I,map] = rgb2ind(im,256);
   if gg == 1
        imwrite(I,map,'lxx.gif','GIF', 'Loopcount',inf,'DelayTime',0.1);
        gg = gg   1;
    else
        imwrite(I,map,'lxx.gif','WriteMode','append','DelayTime',0.1);
    end
end  
movie(fmat,5)

现在再演示另一种命令实现的方式。

drawnow:刷新图片窗口

使用该命令的思路是不断更新图像数据用drawnow;刷新图像就可以让图动起来。过冷水就

采用动态绘图给大家演示一下农夫是如何带着他的狼、羊、菜过河的。

由于平台视频上传不太方便,感兴趣的可以看该链接 Matlab 动态演示农夫渡河视频

        由于动态过河代码较为繁琐,关于动Matlab 动态演示农夫渡河的代码可以看我的附件 。读者要是有想好动态绘图点子都可以给多冷水留言,过冷水帮你们实现创意。

image.png

附件

20积分动态图代码.rar
MATLAB
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-11-22
最近编辑:3年前
过冷水
博士 | 讲师 讨论号:927550334
获赞 355粉丝 175文章 109课程 11
点赞
收藏
未登录
还没有评论

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈