请问大家有没有人能看懂这个matlab动图程序,画的是一个圆,请问能解释一下这个画动图的思路吗?
顺便想问udatudata是什么意思以及这里面quiverquiver后面的8个参数都是什么意思,谢谢...
顺便想问udatudata是什么意思 以及这里面quiverquiver后面的8个参数都是什么意思,谢谢
展开
展开全部
% 创建avi文件
vidObj = VideoWriter('Circle.avi');
open(vidObj);
hold on
% 创建动画
theta = 0:pi/50:2*pi; % 共101帧
x = cos(theta); % 单位圆,调整cos,sin系数,可画椭圆
y = sin(theta);
n = length(theta); % 帧长
axis([-1.5 1.5 -1.2 1.2])
h1 = quiver(0,0,0,1,'w','maxheadsize',0.8); % 画箭头图,箭头大小0.8
htxt = text(0,0,'(0,0)') % 文本初始化
for i = 1:n-1;
plot(x(i:i+1),y(i:i+1))
% 修改quiver(x,y,u,v)中u,v的值,即修改箭头指向
set(h1,'udata',x(i+1),'vdata',y(i+1),'color','r')
% 设定每一帧的标题
title(['x = ','(',num2str(x(i+1)),',',num2str(y(i+1)),')'])
% 设定动图中文本的位置
set(htxt,'position',[x(i),y(i),0],'rotation',0,'string',['x = ','(',num2str(x(i+1)),',',num2str(y(i+1)),')'])
axis([-1.5 1.5 -1.2 1.2])
axis equal
pause(0.02)
% 逐帧写入
currFrame = getframe;
writeVideo(vidObj,currFrame);
end
hold off
% 关闭文件
close(vidObj);
vidObj = VideoWriter('Circle.avi');
open(vidObj);
hold on
% 创建动画
theta = 0:pi/50:2*pi; % 共101帧
x = cos(theta); % 单位圆,调整cos,sin系数,可画椭圆
y = sin(theta);
n = length(theta); % 帧长
axis([-1.5 1.5 -1.2 1.2])
h1 = quiver(0,0,0,1,'w','maxheadsize',0.8); % 画箭头图,箭头大小0.8
htxt = text(0,0,'(0,0)') % 文本初始化
for i = 1:n-1;
plot(x(i:i+1),y(i:i+1))
% 修改quiver(x,y,u,v)中u,v的值,即修改箭头指向
set(h1,'udata',x(i+1),'vdata',y(i+1),'color','r')
% 设定每一帧的标题
title(['x = ','(',num2str(x(i+1)),',',num2str(y(i+1)),')'])
% 设定动图中文本的位置
set(htxt,'position',[x(i),y(i),0],'rotation',0,'string',['x = ','(',num2str(x(i+1)),',',num2str(y(i+1)),')'])
axis([-1.5 1.5 -1.2 1.2])
axis equal
pause(0.02)
% 逐帧写入
currFrame = getframe;
writeVideo(vidObj,currFrame);
end
hold off
% 关闭文件
close(vidObj);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询