首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动画行命令同时动画两行的实现

动画行命令同时动画两行的实现
EN

Stack Overflow用户
提问于 2017-06-27 07:53:57
回答 1查看 117关注 0票数 0

这是对this question的后续,在其中我试图同时动画两个函数。所提供的解决方案实际上满足了需求,因此我接受了它作为最终答案。

然而,当我试图为我的更现实的案例实现类似的东西时,我遇到了额外的问题。以下守则的目的是:

  • 生成一个包含增量(线性)变化应力值的三维矩阵,名为Stresses。第一个索引用于增量变化的值,第二个索引对应于Depth矩阵中的每个值,第三个索引对应于每个animatedline对象。
  • 生成一个名为Depth的2D矩阵,其中包含两行。每一行对应于一个animatedline
  • 同时绘制动画线条和动画。 %情节和动画线条=2 h(1:nline)=动画线();轴(-2.1,2,-10,0);i= 1:100,当j= 1:3应力(i,j,1) = (i/100)+j/3应力(i,j,2) = -(i/100)-j/3末端深度= 0,-5,-10;0,-6,-9表示I=1 :尺寸(应力,1)表示n=1:n行n currentStresses =应力(i,:n) h(n).clearpoints();h(n).addpoints(currentStresses,深度(n,:));%pause(0.0 1)结束

据我所知,这使用了与previous问题类似的格式。包括pause语句会导致同时但“不稳定”的绘图。不包括pause语句结果平滑,但“非同时”的绘图。也就是说,它只画了第二行。

我希望动画是平滑的,同时绘制两个animatedline对象。我怎样才能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-27 08:31:05

对于同时绘图,您缺少了hold函数。

代码语言:javascript
运行
复制
close all
%%PLOT AND ANIMATE
nlines = 2;
% optional: so that you can distinguish between the two lines
colors = {'r','b'};
for n = 1:nlines
    h(n) = animatedline('color',colors{n});
end

axis([-2.1,2,-10,0]);

for i = 1:50
    for j = 1:3
        Stresses(i,j,1) = (i/100)+j/3;
        Stresses(i,j,2) = -(i/100)-j/3;
    end
end

Depth = [0, -5, -10; 0,-6,-9];

for i = 1:size(Stresses,1)
    for n = 1:nlines
        n;
        currentStresses = Stresses(i,:,n);
        h(n).clearpoints();        
        h(n).addpoints(currentStresses, Depth(n,:));
        % wait for another line
        hold on
    end
    % clear hold
    hold off
    drawnow
end

希望这能帮上忙!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44774950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档