2

我正在尝试使用该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)

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

4

3 回答 3

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)
于 2012-05-31T21:43:53.673 回答
2

您可能想要遍历z向量。尝试更改x = cos(i)x = cos(z(i))和相同y = sin(i)

于 2012-05-31T21:12:09.970 回答
0

很晚了,但我希望它可能对那里的人有所帮助......我正在研究如何为圆圈上的点设置动画,虽然我还没有弄清楚,但我注意到了一些东西上面建议的代码可能会使您的圈子看起来更“圆形”。设置后

hold on

如果您添加另一行只是说

axis('equal'); 

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

于 2012-10-16T07:43:22.347 回答