question about pause function,and real time drawing
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
alex
am 27 Okt. 2014
Kommentiert: Geoff Hayes
am 30 Okt. 2014
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!
0 Kommentare
Akzeptierte Antwort
Geoff Hayes
am 28 Okt. 2014
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);
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 Kommentare
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Graphics Performance finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!