WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Animation mit Toggle Button starten und beenden

 

suzy_lee
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 13.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2012, 12:59     Titel: Animation mit Toggle Button starten und beenden
  Antworten mit Zitat      
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)

switch get(hObject,'Value')
    case 1
        % erstelle die Frames für die Animation
        set(hObject, 'Enable', 'off');
        for j=1:50
            axis([-50 50 -10 10]);
            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
           while get(hObject,'Value')==1
                movie(handles.axes1, M, 1);              
           end
    case 0
        % stoppe die Animation und zeichne einen großen roten Punkt
        hold off
        axis([-50 50 -10 10]);
        plot(0,0,'o','MarkerEdgeColor','r',...
             'MarkerFaceColor','r',...
                'MarkerSize',10);

end

guidata(hObject, handles);
 
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.09.2012, 15:50     Titel: Re: Animation mit Toggle Button starten und beenden
  Antworten mit Zitat      
Hallo suzy_lee,

Wie wäre es, wenn Du einfach das SWITCH weglässt:

Code:
function togglebutton1_Callback(hObject, eventdata, handles)

if get(hObject,'Value') == 0
  return;
end

% erstelle die Frames für die Animation
set(hObject, 'Enable', 'off');
for j=1:50
    axis([-50 50 -10 10]);
    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
while get(hObject,'Value') == 1
   movie(handles.axes1, M, 1);              
end

hold off
axis([-50 50 -10 10]);
plot(0,0,'o','MarkerEdgeColor','r',...
             'MarkerFaceColor','r',...
                'MarkerSize',10);

guidata(hObject, handles);
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
suzy_lee
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 13.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2012, 09:46     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke! Das scheint zu funktionieren!

Ich erzähl jetzt lieber nicht wie lange ich an dem Problem gesessen habe...

Gruß,
Suzy
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.