Increment variable as function of time a button is held down

1 vue (au cours des 30 derniers jours)
Alex V
Alex V le 27 Avr 2012
Is there a way to somehow capture the amount of time that a button is held down, and use it to update, in real time, a variable? my specific interest is in using a button to spin a 3d figure. I can get it to do so, but only in increments (click,*spin n rads*,click,*spin n rads* etc).
I have looked for something like this and have been unable to find an answer.
thanks, Alex

Réponse acceptée

Jan
Jan le 27 Avr 2012
You can use the 'WindowsButtonUpFcn' of the figure to catch the release of the button.
  1 commentaire
Alex V
Alex V le 28 Avr 2012
this is precisely what i knew must exist, hadn't thought to look for it in the figure properties, thank you.
so if you wanted to do this the code would be something like:
function button_callback(blahblah)
stop = 0
i = tic;
while stop = 0
handles.t = toc(i);
handles.tsum = handles.tsum+handles.t;
disp(handles.tsum)
stop = get(handles.button,'UserData');
pause(0.1)
end
WindowsButtonUpFcn_figure1(blah)
set(handles.button,'UserData',1);
and the code would behave by displaying the incremented time every 0.1s?
this seems like a really clumsy way of doing it, im sure there's a better way, could you suggest at least a direction? much obliged for the answer to the original question at least, either way.
Cheers,
Alex

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by