如何在关闭动画后重复弹出图形

时间:2018-01-15 15:31:22

标签: matlab animation matlab-figure

最近我开始制作曲柄机制动画。动画效果很好,但是当我试图关闭Figure 1窗口时,它就会不断弹出。

我不知道如何制止这个?

代码:

clc;
clear all;
radius=2;
vzdOdKliky=6;
bod1=[0,0];
axis(gca, 'equal');
mezera=[-4,8,-4,8];
axis(mezera);
speed=1;
for time=1:200
    theta=speed*(time/10);
    bod2=radius*[cos(theta),sin(theta)];
    alfa=asin(radius*sin(theta)/vzdOdKliky);
    bod3=[(radius*cos(theta)+vzdOdKliky*cos(alfa)) 0];
    klika=line([bod1(1),bod2(1)],[bod1(2),bod2(2)]);
    klouzM=line([bod2(1),bod3(1)],[bod2(2),bod3(2)]);
    trajB2=viscircles([0,0],radius,'LineStyle',':');
    kruhB1=viscircles(bod1,0.3);
    kruhB2=viscircles(bod2,0.3);
    kruhB3=viscircles(bod3,0.2);
    pause(0.001);
    delete(klika);
    delete(kruhB1);
    delete(kruhB2);
    delete(kruhB3);
    delete(klouzM);
end

1 个答案:

答案 0 :(得分:7)

无论您是否关闭了数字,您的循环都会继续。

在每个循环中包含对图形存在的检查,如下所示:

% Open figure and store to variable for checking later
fg = figure;
% ... your setup code ...
for time = 1:200
    % Check if the figure still exists
    if ~isvalid(fg)
        % Exit looping, figure has been closed
        break
    end
    % ... other code in the loop ...
end

如果你想要不那么优雅,你总是可以点击 Ctrl + C 来终止你的剧本。