get on click coordinates from a plot (multiple times)

180 vues (au cours des 30 derniers jours)
Max Müller
Max Müller le 10 Sep 2014
Commenté : Max Müller le 11 Sep 2014
Heyho,
the function [x,y]= ginput (n) gives back the x and y data of the curse position while clicking. The Problem: I want to give the user the possibility to click multiple times in a row. However, I need the click to have a direct effect.
So if n>1 the function waits for n clicks to be done before returning the x/y Data.I want to click --> get Values --> click --> get values --> click on the button --> finish. My idea was to use a Pushbutton which sets the ginput into an eternal loop, which can be broken be clicking agian.
function CollectePointsButton_Callback(hObject, eventdata, handles)
Counter = getappdata(hObject,'Counter');
if isempty(Counter) == 1;
Counter = 0;
end
Data = findobj('type','axes');
set(Data,'buttondownfcn',@ClickToCollecte);
Counter = Counter +1;
setappdata(handles.CollectePointsButton,'Counter',Counter);
function ClickToCollecte (gcbo,evendata,handles)
Data = findobj('tag','CollectePointsButton');
Counter = getappdata(Data,'Counter')
while mod(Counter,2) == 1
Data = findobj('tag','CollectePointsButton');
Counter = getappdata(Data,'Counter')
[x,y] = ginput(1);
end

Réponse acceptée

Mischa Kim
Mischa Kim le 10 Sep 2014
Hello Max, check out this answer.
It uses left-mouse clicks to collect data and a right-mouse click to finish collecting data.
  3 commentaires
Mischa Kim
Mischa Kim le 11 Sep 2014
ginput reads position values as long as you keep using the left-mouse button ( button = 1 ). As soon as you use the right-mouse button, button = 3, and the loop is exited.
Max Müller
Max Müller le 11 Sep 2014
cool thanks

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by