第一种方式
close all;
clear all;
clc;
clf;
xlabel('X轴');
ylabel('Y轴');
box on;
axis([-2,2,-2,2]);
axis equal;
pause(1);
h=line(NaN,NaN,'marker','o','linesty','-','erasemode','none');
t=6*pi*(0:0.02:1);
for n=1:length(t)
set(h,'xdata',2*cos(t(1:n)),'ydata',sin(t(1:n)));
pause(0.05);
frame=getframe(gcf);
imind=frame2im(frame);
[imind,cm] = rgb2ind(imind,256);
if n==1
imwrite(imind,cm,'test.gif','gif', 'Loopcount',inf,'DelayTime',1e-4);
else
imwrite(imind,cm,'test.gif','gif','WriteMode','append','DelayTime',1e-4);
end
end
效果图
二、第二种方法是先将每一个动画中的图片保存下来到一个文件夹中,然后进行读取并且制作出视频文件。
程序示例:
function Avi() %%大小写非常重要%% n = 64; WriterObj = VideoWriter('wmw');
WriterObj.FrameRate = 100;%此语句必须放置在
%WriterObj = VideoWriter('wmw')语句之后才能设置帧率
open(WriterObj);for i=1:n%逐次取出文件frame=imread(['C:\Users\Administrator\Desktop\图片\',num2str(i),'.jpg']); %读取文件writeVideo(WriterObj,frame);end close(WriterObj);
原图片文件在百度网盘:
链接:http://pan.baidu.com/s/1miFgCsg 密码:vauv
下载之后保存在桌面上,程序就可以直接运行
总结;
Matlab除了强大的矩阵运算,仿真分析外,绘图功能也是相当的强大,静态画图没什么问题,由于Matlab本身的多线程编程缺陷,想要动态的画图,并且能够很好的在GUI中得到控制,还不是一件很容易的事情,
一. AXIS 移动坐标系
这种方法是最简单的一种方法,适合于数据已经全部生成的场合,先画图,然后移动坐标轴。
二. Hold On 模式
此种方法比较原始,适合于即时数据,原理是先画上一帧,接着保留原始图像,追加下一帧图像,此种方式比较繁琐,涉及画图细节,并且没有完整并连续的Line对象数据。
详细内容可以 后台私信“资料”MF送相关视频资料。内容包括:C/C++,Linux,Nginx,golang,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,ffmpeg流媒体,CDN,P2P,K8S,Docker,Golang,TCP/IP,协程,嵌入式,ARM,DPDK等等。。。
更多C4D模型下载,请访问C4D模型网
优质模型尽在,https://www.c4dmodels.cn/