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

GUI mit 2 axes löschen sich gegenseitig

 

richiking
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 23.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2012, 09:48     Titel: GUI mit 2 axes löschen sich gegenseitig
  Antworten mit Zitat      
Hallo,

ich habe eine GUI mit 2 Axes. Eine davon beinhaltet ein Video und die andere dazugehörige Daten.
Nun habe ich das Problem, dass die axes mit dem video scheinbar immer gelöscht wird (oder das video in den hintergrund rückt) wenn die andere axes mit neuen daten befüllt wird.


Code:

plot(handles.axes1,1:100,1:100) % daten werden geplottet axes mit video wird weiß

% danach füge ich nun extra schon nochmal den movie-befehl ein
movie(handles.axes2,video)




Nun scheint es mir so, dass der Plotbefehl für die Daten länger braucht als das movie und daher das movie immer "gelöscht" wird. Beweisen konnte ich das indem ich im Debugmodus durch den code ging und alles funktionierte.


Generelle stellt sich mir die Frage warum der Plot einer Axes gelöscht wird wenn der Plot einer anderen axes erneuert wird???
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: 25.07.2012, 15:39     Titel: Re: GUI mit 2 axes löschen sich gegenseitig
  Antworten mit Zitat      
Hallo richiking,

Sehr merkwürdig.
Zitat:
Nun scheint es mir so, dass der Plotbefehl für die Daten länger braucht als das movie und daher das movie immer "gelöscht" wird.

Das erscheint mir nicht überzeugend.
Macht ein DRAWNOW einen Unterschied?

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

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 23.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.07.2012, 16:06     Titel:
  Antworten mit Zitat      
So nochmals mit bisschen mehr Erklärung:

Code:

if(exist('actualplot') &&ishandle(actualplot) && actualplot~=0)
        delete(actualplot);
end
     
 actualplot = plotIndicator(handles.ax_data,handles.t_cut(frame));
       
%         pause(1);

        movie(handles.ax_video,handles.video_cut.frames(frame),2);
 


In meinem Programm zeichne ich Daten auf und lass ein Video anzeigen. In dem Daten-axes zeichne ich je nach Frame vom Video einen Indicator der quasi synchron mit dem Video mitgeht. Diesen Indicator (actualplot) muss ich natürlich bei jeder Frame-Änderung (mittels Slider) löschen da ansonsten einen Haufen "Indicator" gezeichnet werden. Der Ablauf ist wie oben relativ leicht verständlich.
1) Lösche vorhandene Indicator
2) Zeichne Indicator neu
3) spiel neuen frame ab

Das funktioniert soweit ganz gut solang ich den Frame 2 mal abspiele bzw nicht viel daten in der ax_data geladen sind. sobald da bissl mehr ist muss ich entweder eine pause einlegen (pause(1)) oder den frame 2 mal abspielen lassen....

Was meiner Ansicht nach passiert ist folgendes:
+ Video ist in der Axes geladen
++ bei "delete" verschwindet das Video witzigerweise in den Hintergrund (es wird nicht gelöscht)
+ danach zeichnet sich der indicator neu wie gewollt
+ das video erscheint dann im debug-modus auch wieder bei der "movie-zeile"

Ich hab jetzt schon mit uistack und desweiteren herumprobiert mit dem ergebnis, dass das video kurz einmal flackert aber sofort wieder in den hintergrund gerät...


wo wäre deiner meinung nach das draw now zu setzen? ich bin nicht ganz firm mit dem befehl...


danke vorweg!
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.