Искам да нарисувам набор от несвързани линии върху изображение, като плъзгам мишката, докато натискам левия бутон. Ако обаче щракна върху предварително начертана линия, за да укажа началната точка на следващия ред, функцията за обратно извикване не се извиква и не разбирам смисъла. Ето моят код:
function main_test
S.fH = figure('menubar','none');
im = imread( 'image.jpg' );
S.aH = axes;
S.iH = imshow( im ); hold on
axis image;
X = [];
Y = [];
set(S.aH,'ButtonDownFcn',@startDragFcn)
set(S.iH,'ButtonDownFcn',@startDragFcn)
set(S.fH, 'WindowButtonUpFcn', @stopDragFcn);
function startDragFcn(varargin)
set( S.fH, 'WindowButtonMotionFcn', @draggingFcn );
pt = get(S.aH, 'CurrentPoint');
x = pt(1,1);
y = pt(1,2);
X = x;
Y = y;
end
function draggingFcn(varargin)
pt = get(S.aH, 'CurrentPoint');
x = pt(1,1);
y = pt(1,2);
X = [X x];
Y = [Y y];
plot(X, Y, 'r', 'LineWidth', 6);
hold on
drawnow
end
function stopDragFcn(varargin)
set(S.fH, 'WindowButtonMotionFcn', ''); %eliminate fcn on release
end
end
Бихте ли ми помогнали да идентифицирам проблема в това.
Благодаря Ви предварително..
наздраве, Sawsan