Verfasst am: 13.09.2012, 12:59
Titel: Animation mit Toggle Button starten und beenden
Hallo!
Ich habe ein GUI mit zwei Elementen: "axes1" und "togglebutton1".
In "axes1" soll, wenn "togglebutton1" aktiviert ist eine Animation angezeigt werden (eine Linie wird gezeichnet). Sobald der "togglebutton1" auf Null gesetzt wird, soll statt der Animation ein roter Punkt angezeigt werden.
Das Problem ist, dass nachdem der rote Punkt gezeigt wurde, die Funktion zurückspringt in die while-Schleife und die Animation beendet wird, und damit den roten Punkt übermalt.
Ich würde gerne vom Zweig "case 0" die while-Schleife bzw. "movie" abbrechen.
Freue mich auf Vorschläge
Gruß,
Suzy
Code:
function togglebutton1_Callback(hObject, eventdata, handles)
switchget(hObject,'Value') case1 % erstelle die Frames für die Animation set(hObject, 'Enable', 'off');
for j=1:50 axis([-5050-1010]);
hold on
plot(-25+j,0,'o','MarkerEdgeColor','k',...
'MarkerFaceColor','k',...
'MarkerSize',5);
M(j)=getframe;
end set(hObject, 'Enable', 'on');
% zeige die Animation solange an, solange Toggle Button den Wert 1 % hat whileget(hObject,'Value')==1 movie(handles.axes1, M, 1);
end case0 % stoppe die Animation und zeichne einen großen roten Punkt hold off
axis([-5050-1010]);
plot(0,0,'o','MarkerEdgeColor','r',...
'MarkerFaceColor','r',...
'MarkerSize',10);
% erstelle die Frames für die Animation set(hObject, 'Enable', 'off');
for j=1:50 axis([-5050-1010]);
hold on
plot(-25+j,0,'o','MarkerEdgeColor','k',...
'MarkerFaceColor','k',...
'MarkerSize',5);
M(j)=getframe;
end
set(hObject, 'Enable', 'on');
% zeige die Animation solange an, solange Toggle Button den Wert 1 % hat whileget(hObject,'Value') == 1 movie(handles.axes1, M, 1);
end
hold off
axis([-5050-1010]);
plot(0,0,'o','MarkerEdgeColor','r',...
'MarkerFaceColor','r',...
'MarkerSize',10);
Ich erzähl jetzt lieber nicht wie lange ich an dem Problem gesessen habe...
Gruß,
Suzy
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.