在MatLab制作电影

时间:2012-05-31 21:07:43

标签: matlab animation geometry

我正在尝试使用movie命令在MatLab中创建一个短动画。动画应该画一个圆圈。但是,当我运行以下脚本时,“o”符号只是在图形窗口周围随机跳转而不会留下痕迹。

z = linspace(0,2*pi,100);
nframes = length(z);
Frames = moviein(nframes);
for i = 1:nframes
    x = cos(i);
    y = sin(i);
    plot(x,y,'o','erase','none');
    Frames(:,i) = getframe;
    pause(0.25);
end
movie(Frames,1)

如果有人能向我解释为什么脚本无法正常工作,我将不胜感激!

3 个答案:

答案 0 :(得分:5)

这画一个圆圈。希望能帮助到你。

z = linspace(0,2*pi,100);
nframes = length(z);
Frames = moviein(nframes);
for i = 1:nframes
    x = cos(2*pi*i/nframes);
    y = sin(2*pi*i/nframes);
    plot(x,y,'o');
    hold on
    Frames(:,i) = getframe;
    pause(0.01);
end
movie(Frames,1)

答案 1 :(得分:2)

您可能希望遍历z向量。尝试将x = cos(i)更改为x = cos(z(i)),将y = sin(i)更改为

答案 2 :(得分:0)

这很晚,但我希望它可能对那里的人有帮助... 我正在研究如何在圆上设置点动画,虽然我还没有想到它,但我注意到上面建议的代码中的某些内容可能会使你的圆圈看起来更“圆形”。 设置

hold on

如果你添加另一行只是说

axis('equal'); 

您将获得与绘图一致缩放的轴,因此您的圆圈不会因图形窗口尺寸而损坏。