来源:https://ww2.mathworks.cn/help/matlab/ref/drawnow.html?searchHighlight=drawnow&s_tid=doc_srchtitle

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

drawnow

更新图窗并处理回调

全页折叠
 

说明

示例

drawnow 更新图窗并处理任何挂起的回调。如果您修改图形对象并且需要在屏幕上立即查看这次更新,请使用该命令。

示例

drawnow limitrate 将更新数量限制为每秒 20 帧。如果自上次更新后不到 50 毫秒,或图形渲染器忙于处理之前的更改,则 drawnow 会丢弃新的更新。如果您在循环中更新图形对象并且不需要在屏幕上查看每个更新,请使用该命令。跳过更新可以产生更快的动画。挂起的回调得到处理,这样您可以在动画期间与图窗交互。

drawnow nocallbacks 会延迟回调(例如 ButtonDownFcn 回调),直至下个完整的 drawnow 命令执行。如果您想要阻止回调中断您的代码,请使用该选项。暂时延迟回调会禁用图窗交互,例如点击鼠标或调整图窗大小。延迟回调不会影响动画速度。

drawnow limitrate nocallbacks 将更新数量限制为每秒 20 帧,如果渲染器繁忙则跳过更新。此语法还可以阻止回调中断您的代码,这样会暂时禁用图窗交互。

如果渲染器繁忙,drawnow update 会跳过更新并延迟回调。不建议使用该语法。改用 limitrate 选项。

drawnow expose 更新图窗但延迟回调。不建议使用该语法。改用 nocallbacks 选项。

 

示例

全部折叠

创建流数据的动画

创建一个线条不断变长的动画,直到它累积到 2,000 个数据点。使用 drawnow 在每次循环迭代后将更改显示在屏幕上。

h = animatedline;
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);
drawnow
end

 

跳过更新以产生更快的动画

创建一个线条不断变长的动画,直到它累积到 10,000 个点。由于存在 10,000 个点,在屏幕上绘制每个更新比较慢。通过使用 drawnow limitrate 限制更新数量创建更快、更平滑的动画。然后,通过在循环结束后调用 drawnow 在屏幕上显示最终更新。

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

 

预计算数据,然后创建动画

在动画循环之前计算所有数据。

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 的操作

这些操作等效于调用完整的 drawnow 命令:

提示

  • nocallbacks 选项始终都向队列中添加中断回调。如果您想要丢弃中断回调,则改用 InterruptibleBusyAction 属性。

matlab中drawnow更新图窗并处理回调的更多相关文章

  1. matlab中figure创建图窗窗口

    来源:https://ww2.mathworks.cn/help/matlab/ref/figure.html?searchHighlight=figure&s_tid=doc_srchtit ...

  2. matlab中figure 创建图窗窗口

    来源:https://ww2.mathworks.cn/help/matlab/ref/figure.html?searchHighlight=figure&s_tid=doc_srchtit ...

  3. MATLAB中绘制质点轨迹动图并保存成GIF

    工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...

  4. matlab中help所有函数功能的英文翻译

    doc funname 在帮助浏览器中打开帮助文档 help funname 在命令窗口打开帮助文档 helpbrowser 直接打开帮助浏览器 lookfor funname 搜索某个关键字相关函数 ...

  5. matlab中axis的用法

    来源:https://ww2.mathworks.cn/help/matlab/ref/axis.html?searchHighlight=axis&s_tid=doc_srchtitle a ...

  6. matlab中uicontrol创建用户界面控件

    来源:https://ww2.mathworks.cn/help/matlab/ref/uicontrol.html?searchHighlight=uicontrol&s_tid=doc_s ...

  7. matlab中subplot 在平铺位置创建坐标区

    来源:https://ww2.mathworks.cn/help/matlab/ref/subplot.html?searchHighlight=subplot&s_tid=doc_srcht ...

  8. 基于Python实现matplotlib中动态更新图片(交互式绘图)

    最近在研究动态障碍物避障算法,在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹,利用Anaconda的Python打包集合,在Spyder中使用Python3.5语言和mat ...

  9. matlab中colormap

    来源:https://ww2.mathworks.cn/help/matlab/ref/colormap.html?searchHighlight=colormap&s_tid=doc_src ...

随机推荐

  1. Spring Security如何优雅的增加OAuth2协议授权模式

    一.什么是OAuth2协议? OAuth 2.0 是一个关于授权的开放的网络协议,是目前最流行的授权机制. 数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据.系统从而产生一个短期的进入令 ...

  2. 通过WordCount解析Spark RDD内部源码机制

    一.Spark WordCount动手实践 我们通过Spark WordCount动手实践,编写单词计数代码:在wordcount.scala的基础上,从数据流动的视角深入分析Spark RDD的数据 ...

  3. .NET5.0 单文件发布打包操作深度剖析

    .NET5.0 单文件发布打包操作深度剖析 前言 随着 .NET5.0 Preview 8 的发布,许多新功能正在被社区成员一一探索:这其中就包含了"单文件发布"这个炫酷的功能,实 ...

  4. Jmeter简单操作 取样器 ,监听器

    1.创建线程组 1.2 (1)  线程组主要包含三个参数:线程数.准备时长(Ramp-Up Period(in seconds)).循环次数. (2) 线程数:虚拟用户数.一个虚拟用户占用一个进程或线 ...

  5. C#操作Excel开发报表系列整理

    C#操作Excel进行报表开发系列共写了八篇,也已经有很久没有新东西了,现在整理一下,方便以后查阅,如果有写新的,会同时更新.需要注意的是因为Office的版本不同,实际的代码可能会有所不同,但是都是 ...

  6. 在Oracle Sql Developer/Sql Plus中查看oracle版本

    输入select * from v$version; 执行即可. 此法在Sql plus中执行效果: SQL> select * from v$version; BANNER --------- ...

  7. Repeater每行绑定事件代码

    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { Repea ...

  8. LongAccumulator类的BUG——reset方法并不能保证初始值正确赋值

    LongAccumulator.reset方法并不能重置重置LongAccumulator的identity:初始值正确,使其恢复原来的初始值.当初始值为0是不会发生这个问题,而当我们设置初始值如1时 ...

  9. html基础:css样式1

    h't'm'l中用到css样式有三种方式: 1.在header中增加style标签,在style标签中写 2.用link标签引用css样式文件 3.在需要使用css样式的标签添加style属性 一.在 ...

  10. python基础五(函数、全局变量和局部变量)

    一.全局变量和局部变量 全局变量,即可以在当前文件所有地方都可使用的变量,一次修改,整个文件都影响.如果函数体内部使用全局变量,要先声明global 局部变量,只能在函数体内部使用,除了函数体就不可使 ...