フィルターのクリア

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

1 回表示 (過去 30 日間)
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)

採用された回答

Walter Roberson
Walter Roberson 2011 年 4 月 26 日
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 件のコメント
Aaron
Aaron 2011 年 4 月 26 日
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 2011 年 4 月 26 日
I think it just lagged up, but it seems to work now. I thank you so much for your help.

サインインしてコメントする。

その他の回答 (1 件)

Chirag Gupta
Chirag Gupta 2011 年 4 月 26 日
You might be actually looking for uiwait and uiresume functionality instead of pause

カテゴリ

Help Center および File ExchangeInteractive Control and Callbacks についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by