matlab中drawnow
- 功能:更新数据并处理回调
- 函数:drawnow 、 drawnow limitrate、 drawnow nocallbacks 、drawnow limitrate nocallbacks 、drawnow update 、drawnow expose
- 介绍
- Drawnow更新数据并处理所有未决的回调。 如果您修改图形对象并希望立即在屏幕上查看更新,请使用此命令。
1
2
3
4
5
6
7
8
9
10
创建一条累积2000个数据点的直线动画。 遍历循环后,使用drawow在屏幕上显示更改。
h = animatedline; %
创建一根没有任何数据的动画线条并将其添加到当前坐标区中。通过使用addpoints
函数循环向线条中添加点来创建动画。axis
([0 4*
pi
-1 1])
x =
linspace
(0,4*
pi
,2000);
for
k = 1:
length
(x)
y =
sin
(x(k));
addpoints(h,x(k),y); %add the (x(k),y) to the h
drawnow
end
- drawow limitrate将更新次数限制为每秒20帧。 如果自上次更新以来不到50毫秒,或者图形渲染器忙于上一次更改,则drawow丢弃新更新。 如果要循环更新图形对象,并且不需要在屏幕上看到每个更新,请使用此命令。 跳过更新可以创建更快的动画。 处理待处理的回调,因此您可以在动画期间与图形进行交互。
1
2
3
4
5
6
7
8
9
10
11
%创建一条累积了10,000点的直线动画。 由于有10,000点,因此在屏幕上绘制每个更新速度很慢。<br>% 通过使用drawow limitrate限制更新次数来创建更快,更流畅的动画。 然后,在循环结束后,通过调用drawow在屏幕上显示最终更新。
h = animatedline;
axis
([0 4*
pi
-1 1])
x =
linspace
(0,4*
pi
,10000);
for
k = 1:
length
(x)
y =
sin
(x(k));
addpoints(h,x(k),y);
drawnow
limitrate
end
drawnow
1
2
3
4
5
6
7
8
9
10
11
%先画好图,在动态显示
h = animatedline;
axis
([0 4*
pi
-1 1])
x =
linspace
(0,4*
pi
,10000);
y =
sin
(x);
for
k = 1:
length
(x)
addpoints(h,x(k),y(k));
drawnow
limitrate
end
drawnow
- Drawnow更新数据并处理所有未决的回调。 如果您修改图形对象并希望立即在屏幕上查看更新,请使用此命令。