【问题标题】:How to slow animatedline rendering time - Matlab如何减慢动画线的渲染时间 - Matlab
【发布时间】:2017-10-18 11:24:10
【问题描述】:

我有一个边界,我希望使用动画线散布图。如何控制/减慢此操作的速度?

脚本:

clc;
clear;       
I = imread('http://dreamicus.com/data/key/key-01.jpg');
I =   rgb2gray(I);
I=imcomplement(I);
level = graythresh(I);
BW = im2bw(I,level);     
BW_filled = imfill(BW,'holes');     
boundaries = bwboundaries(BW_filled);  
figure,imshow(I);     
b = boundaries{1}; 
plot(b(:,2),b(:,1),'b','LineWidth',2);

an = animatedline; 
x=b(:,2);
y=b(:,1);


for k = 1:numel(x)
  disp(k)
  addpoints(an, x(k), y(k))
  drawnow
  % Wait for 0.1 seconds
  pause(0.1)
end

【问题讨论】:

标签: matlab


【解决方案1】:

您可以使用timer 对象来指定添加新点的速率(使用addpoints

t = timer('ExecutionMode', 'fixedRate', ...
          'Period', 0.1, ...
          'TimerFcn', @(s,e)addSomePoints());

k = 1;

start(t);

function addSomePoints()
    addpoints(an, x(k), y(k))

    % Stop the timer when we're done.
    k = k + 1;
    if k > numel(x)
        stop(t);
    end

    drawnow
end

或者,您可以在添加每个点后使用pause 等待一段时间。但是,此选项不考虑执行 addpoints 需要多长时间。

for k = 1:numel(x)
    addpoints(an, x(k), y(k))

    % Wait for 0.1 seconds
    pause(0.1)
end

【讨论】:

  • 更新了脚本,但渲染速度还是很快,为什么?
  • 您应该将句点更改为更大的数字,以使其渲染速度变慢
猜你喜欢
  • 1970-01-01
  • 2018-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-16
  • 2010-10-27
  • 2021-11-19
  • 1970-01-01
相关资源
最近更新 更多