主要内容

drawnow

图업데이트및콜백처리

설명

예제

drawnow는图를업데이트하고보류중rm콜백을모두처리합니다。그래픽스객체를수정한후,업데이트내용을화면에즉시표시하려면이명령을사용하십시오。

예제

drawnow limitrate는업데이트수를초당20프레임으로제한합니다。마지막업데이트이후로50밀리초가지나지않았거나그래픽스렌더러가이전변경내용을처리중인경우drawnow는새로운업데이트를삭제합니다。루프에서그래픽스객체를업데이트하고화면에모든업데이트를표시할필요가없는경우이명령을사용하십시오。업데이트를@ @시하지않고건너뛰면애니메이션속도가향상될수있습니다。보류중인콜백이처리되므로애니메이션을실행하는중에图와상호작용할수있습니다。

drawnow nocallbacks는다음전체drawnow명령이실행될때까지ButtonDownFcn과같은콜백을미룹니다。콜백으로해코드실행이중단되지않도록하려면이옵션을사용하십시오。콜백을미루면마우스클릭이나图크기조정과같은图상호작용이일시적으로비활성화됩니다。콜백을미루더라도애니메이션속도에는향을미치지않습니다。

Drawnow limitrate nocallback는업데이트수를초당20프레임으로제한하고,렌더러가사용중인경우업데이트를건너뜁니다。또한이구문은콜백으로해코드가중단되는것을방지합니다。코드가중단이되면图상호작용이일시적으로비활성화되는데이또한방지됩니다。

drawnow更新는렌더러가사용중경우업데이트를건너뛰고콜백을미룹니다。이구문은권장되지않습니다。limitrate옵션을대신사용하십시오。

drawnow暴露는图를업데이트하지만,콜백을미룹니다。이구문은권장되지않습니다。nocallbacks옵션을대신사용하십시오。

예제

모두 축소

2000개의데이터점을누적하면서점점길어지는선의애니메이션을만듭니다。루프의각반복후에화면에변경내용을@ @시하려면drawnow를사용하십시오。

H = animatedline;轴([0 4*pi -1 1]) x = linspace(0,4*pi,2000);K = 1:长度(x) y = sin(x(K));addpoints (h, x (k), y);drawnow结束

10000개의데이터점을누적하면서점점길어지는선의애니메이션을만듭니다。10000개점개수가이므로,각각의업데이트를화면에모두그리는것은속도가느립니다。drawnow limitrate를사용해업데이트수를제한하여더욱빠르고부드러운애니메이션을만듭니다。그런다음,루프가끝나면drawnow를호출하여화면에최종업데이트를@ @시합니다。

H = animatedline;轴([0 4*pi -1 1]) x = linspace(0,4*pi,10000);K = 1:长度(x) y = sin(x(K));addpoints (h, x (k), y);drawnowlimitrate结束drawnow

애니메이션루프를실행하기전에모든데이터를계산합니다。

H = animatedline;轴([0 4*pi -1 1]) x = linspace(0,4*pi,10000);Y = sinx;K = 1:长度(x)加点(h,x(K),y(K));drawnowlimitrate结束drawnow

긴계산을할경우,데이터를미리계산하면성능이향상될수있습니다。사전에계산하면중단없이계산을실행하므로계산시간이최소화됩니다。또한,애니메이션루프에서그래픽스코드에만집중함으로써부드러운애니메이션을만드는데도움이됩니다。

세부 정보

모두 축소

drawnow와동일한동작

다음동작은전체drawnow명령을호출하는것과동일합니다。

  • nocallbacks옵션은대기열에항상터럽트콜백을추가합니다。터럽트콜백을삭제하려면可中断속성과BusyAction속성을대신사용하십시오。

버전 내역

R2006a이전에개발됨

참고 항목

||

도움말항목

Baidu
map