Borrar filtros
Borrar filtros

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

1 visualización (últimos 30 días)
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)

Respuesta aceptada

Walter Roberson
Walter Roberson el 26 de Abr. de 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 comentarios
Aaron
Aaron el 26 de Abr. de 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 el 26 de Abr. de 2011
I think it just lagged up, but it seems to work now. I thank you so much for your help.

Iniciar sesión para comentar.

Más respuestas (1)

Chirag Gupta
Chirag Gupta el 26 de Abr. de 2011
You might be actually looking for uiwait and uiresume functionality instead of pause

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by