question about pause function,and real time drawing

조회 수: 3 (최근 30일)
alex
alex 2014년 10월 27일
댓글: Geoff Hayes 2014년 10월 30일
Hello!
I use a drawing tablet and i manage to get and save x,y coordinates.
if i want to see what i draw, i use the command
line(x, y, 'Color','k','LineWidth', 1);
If i want to see in real time what i am drawing i use
line(x, y, 'Color','k','LineWidth', 1);
pause(0.001);hold on
The problem is when i use pause, i miss some packets from the tablet,so the drawing is kind of squared and it is different from the non real time drawing.
Any idea what to do at the real time drawing?
Thank you very much!

채택된 답변

Geoff Hayes
Geoff Hayes 2014년 10월 28일
Alex - what you are working on sounds cool.
When you call
line(x, y, 'Color','k','LineWidth', 1);
for the real time drawing, do x and y contain all coordinates or only the most recent ones that were sent from the tablet? If the former, then you could try updating the line object instead of creating a new one with each call to line. Presumably you have created a figure (or are drawing on an axes within a GUI), so you could initialize your line as
hLine = line(NaN,NaN, 'Color','k','LineWidth', 1);
Now, when you receive new coordinates, you could just update the current line as
x = [x ; newX];
y = [y ; newY];
set(hLine,'XData',x,'YData',y);
Then, remove the pause and hold statements and replace both with just the drawnow as
x = [x ; newX];
y = [y ; newY];
set(hLine,'XData',x,'YData',y);
drawnow;
The above might speed things up a bit so that you are less likely to miss packets. Try it and see!
  댓글 수: 7
alex
alex 2014년 10월 30일
just perfect! everything works fine! thank you very much Geoff!
p.s: the while loop continues to run normally (without the if ~isempty(x) )for 10 seconds without the pen touching the tablet.there was no problem!
Thank you very much again!
Geoff Hayes
Geoff Hayes 2014년 10월 30일
Glad that it is working well, Alex!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Mike Garrity
Mike Garrity 2014년 10월 28일
There are a couple of suggestions you might try in this section of the doc .

카테고리

Help CenterFile Exchange에서 Graphics Performance에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by