Clear Filters
Clear Filters

Why is the pause button interfering with the exit button when pause is pressed?

1 view (last 30 days)
So far I have the code below and need help with the button because it just pauses and will not continue and I can only press pause once per open Matlab.
function nightonearth
% NIGHTONEARTH shows rotating earth by night
% Requires images 'earth_lights_small.jpg' and
% 'moon.jpg' on the path stars=rand(100,2);
%Line 10 is for moon
[x,y,z] = sphere(48);
x2=(x*0.2734)+1;
y2=y*0.2734;
z2=z*0.2734;
f=figure('Color','k');
staraxis=axes('units','normalized','position',[0,0,1,1]);
scatter(stars(:,1),stars(:,2),'w.');
axis off
earthaxis=axes('units','normalized','position',[0,0,1,1]);
hold on;
s=surf(x,y,z);
s2=surf(x2,y2,z2);
%[X,Y]=meshgrid(0:2*pi/60:2*pi,(logspace(0,1,20)-1)./10);
%[X,Y]=pol2cart(X,Y);
%Z=X.^2+Y.^2;
%s3=surf(X,Y,Z);
shading interp
axis([-2.5,2.5,-2.5,2.5,-1.5,1.5]);
daspect([1,1,1])
axis off vis3d
set(gca,'Position',[0,0,1,1]);
topo=imread('earth_lights_small.jpg');
topoud=flipdim(topo,1);
set(s,'facecolor','texture');
set(s,'cdata', im2double(topoud));
[topomoon,map]=imread('moon.jpg');
set(s2,'facecolor','texture');
set(s2,'cdata', im2double(topomoon));
camtarget([0,0,0]);
campos([25,0,0]);
%------------------------------------------------------------------
% fig=figure;
tryme = uicontrol('Style','togglebutton','value', false, 'string', 'Exit');
%------------------------------------------------------------------
%IMPROVEMENT #2: Add another togglebutton to stop/restart the rotation
uicontrol('units', 'normalized', 'position', [.04 .1 .1 .05],...
'style', 'pushbutton', 'Callback', 'pause', 'string',
'Pause')
pause on
%^^^ just added this part
%------------------------------------------------------------------
while ~get(tryme, 'value')
rotate(s,[0,0,1],1,[0,0,0]);
rotate(s2,[0,0,1],0.0357,[0,0,0]);
% camorbit(15,0)
drawnow; pause(.1)
%------------------------------------------------------------------
end
close(f)

Accepted Answer

Walter Roberson
Walter Roberson on 26 Apr 2011
You need a
pause on
call for the pause call in your IMPROVEMENT #2 to work. See http://www.mathworks.com/help/techdoc/ref/pause.html
When you have pressed the button, you need to press a key (not click again) for that form of pause to continue.
  2 Comments
Aaron
Aaron on 26 Apr 2011
I added the pause on and it worked wonderfully, but when I go to press exit, it no longer works. Do you have any thoughts on this?
Aaron
Aaron on 26 Apr 2011
I think it just lagged up, but it seems to work now. I thank you so much for your help.

Sign in to comment.

More Answers (1)

Chirag Gupta
Chirag Gupta on 26 Apr 2011
You might be actually looking for uiwait and uiresume functionality instead of pause

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!