Живопись области динамических линий сюжета - PullRequest
1 голос
/ 06 ноября 2010

в Matlab вы можете закрасить область между двумя линиями, напечатанными на графике.Следующий код печатает динамический график.

figure('doublebuffer','on')
t=0;
r=32;
g=32
axes('xlim',[0 24], ...
    'nextplot','add') 
p1=plot(t,r,'r','LineWidth',2);
p2=plot(t,r,'b.','MarkerSize',15);
p3=plot(t,g,'b','LineWidth',2);
p4=plot(t,g,'g.','MarkerSize',15);
for t=1:24
ylim('auto')
r=abs(22*(rand(1,1)+1));
g=abs(8*(rand(1,1)+1))
set(p1,'xdata',[get(p1,'xdata') t],...
    'ydata',[get(p1,'ydata') r]) 
set(p2,'xdata',t,...
    'ydata',r)
set(p3,'xdata',[get(p3,'xdata') t],...
    'ydata',[get(p3,'ydata') g]) 
set(p4,'xdata',t,...
    'ydata',g)
pause(0.5) 
end

Что мне было интересно, если бы вы могли закрасить область между двумя линиями, которые динамически изображаются (теперь это белый цвет, но мне интересно, если вы можете изменить цветобласть) Я бы поставил образец, но у меня достаточно точек. Также мне было интересно, можно ли сгладить пики на графике при больших вариациях.

Заранее спасибо за помощь.Я надеюсь, что я был ясен в объяснении.Я пытался использовать команду area () , но безуспешно ....

1 Ответ

1 голос
/ 06 ноября 2010

Что касается заливки цветом между двумя строками, вы можете использовать функцию FILL . Вот модификация вашего примера, показывающая, как вы можете это сделать:

t = 0:24;                %# t values
r = [32 zeros(1,24)];    %# Initialize r values
g = [32 zeros(1,24)];    %# Initialize g values
hFill = fill([t(1) t(1)],[r(1) g(1)],'r');  %# Fill between r and g with red
for iPoint = 2:length(t)
  r(iPoint) = 22*(rand+1);  %# Add a value to r
  g(iPoint) = 8*(rand+1);   %# Add a value to g
  set(hFill,'XData',[t(1:iPoint) t(iPoint:-1:1)],...  %# Update x data
            'YData',[r(1:iPoint) g(iPoint:-1:1)]);    %# Update y data
  pause(0.5);
end

Затем вы можете добавить на график начальные точки для трасс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...