0

对于我目前在 matlab 中的项目,我正在模拟感染在全球的传播。我用来让感染跳跃的主要方法是预设机场位置。我还通过动画线条将感染从一个机场传播到另一个机场来展示它们。主地图是设置为默认 2D 视图的 3d 冲浪图,并且使用 plot3 绘制线条,它也在 2D 视图中。

除了一个问题,我一切正常。我需要在同一个图中同时为两个 3D 图表设置动画,但我需要让地图的动画保持不开启,同时允许连接机场的线的动画保持开启,以便所有路径仍将显示。

关于如何做到这一点的任何想法?

4

2 回答 2

4

让我举一个动画的例子,也许它会有所帮助:

figure('Renderer','zbuffer')

%# this is the surface we will be animating
Z = peaks;
hSurf = surf(Z);
axis tight;    %# fix axis limits

%# these are some fixed lines
hLine(1) = line([0 50], [0 50], [-5 5], 'Color','r' ,'LineWidth',4);
hLine(2) = line([40 0], [0 40], [-5 5], 'Color','g' ,'LineWidth',4);

%# some text as well
hTxt = text(10,40,5, '0');

%# iterations
for j = 1:20
    %# animate the Z-coordinates of the surface
    set(hSurf, 'ZData',sin(2*pi*j/20)*Z)

    %# change text
    set(hTxt, 'String',num2str(j))

    %# flush + a small delay
    pause(0.05)
end

请注意我们如何保存图形对象(表面、文本和线条)的句柄,以便我们以后可以操作它们。

动画

于 2013-04-19T18:25:55.800 回答
0

我想出了一种方法,方法是保存我不想更改的所有内容的句柄,始终保持不变,然后在添加新版本之前使用删除功能直接删除以前的版本。我还添加了 uistack 以便它们按照我想要的顺序出现在屏幕上

于 2013-04-20T17:58:45.680 回答