Increment variable as function of time a button is held down

8 次查看(过去 30 天)
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

采纳的回答

Jan
Jan 2012-4-27
You can use the 'WindowsButtonUpFcn' of the figure to catch the release of the button.
  1 个评论
Alex V
Alex V 2012-4-28
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

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by