Freehand drawing in axes
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Dear All,
I want to draw multiply lines (freehand) in one axes (e.g., paintAxes) which is one of many axes in a GUI.
I tried the solution provided by Doug Schwarz in http://www.mathworks.in/matlabcentral/newsreader/view_thread/30168#75552
The code is:
function sketch(cmd)
if nargin == 0
cmd = 'init';
end
switch cmd
case 'init'
fig = figure('DoubleBuffer','on','back','off');
info.ax = axes('XLim',[0 1],'YLim',[0 1]);
info.drawing = [];
info.x = [];
info.y = [];
set(fig,'UserData',info,...
'WindowButtonDownFcn',[mfilename,' down'])
case 'down'
myname = mfilename;
fig = gcbf;
info = get(fig,'UserData');
curpos = get(info.ax,'CurrentPoint');
info.x = curpos(1,1);
info.y = curpos(1,2);
info.drawing = line(info.x,info.y,'Color','k');
set(fig,'UserData',info,...
'WindowButtonMotionFcn',[myname,' move'],...
'WindowButtonUpFcn',[myname,' up'])
case 'move'
fig = gcbf;
info = get(fig,'UserData');
curpos = get(info.ax,'CurrentPoint');
info.x = [info.x;curpos(1,1)];
info.y = [info.y;curpos(1,2)];
set(info.drawing,'XData',info.x,'YData',info.y)
set(fig,'UserData',info)
case 'up'
fig = gcbf;
set(fig,'WindowButtonMotionFcn','',...
'WindowButtonUpFcn','')
end
I still have few problems which I would be grateful if you can help:
- when I call it opens a new figure, how can I disable it and how I can make it to allow drawing only in my specific axes?
-How can I change the line thickness?
Thanks a lot in advance.
0 Kommentare
Antworten (1)
Image Analyst
am 12 Mai 2013
Try commenting out this line:
fig = figure('DoubleBuffer','on','back','off');
2 Kommentare
Image Analyst
am 13 Mai 2013
Bearbeitet: Image Analyst
am 13 Mai 2013
Try this: http://blogs.mathworks.com/videos/2012/07/03/debugging-in-matlab/ to see where the additional figure pops to life.
Siehe auch
Kategorien
Mehr zu Interactive Control and Callbacks finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!