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 ohne vorherige Zeichnungen zu löschen

 

Gast-Hi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2014, 16:55     Titel: Animation ohne vorherige Zeichnungen zu löschen
  Antworten mit Zitat      
Hallo!
Ich hoffe hier Hilfe auf mein kleines Problem zu finden.

Und zwar möchte ich eine Animation machen, bei der Punkte und Geraden in jedem Schritt gezeichnet werden - allerdings ohne die vorherigen Zeichnungen zu löschen.

Ich möchte es auch vermeiden immer Plotbefehle zu verwenden, da diese recht stark auf die Performance gehen.
z.B.
hold on;
for-loop
plot(...)
end_for_loop


Ich habe ein quick&dirty Testprogramm geschrieben. Es animiert Linien, jedoch wird immer die vorherige gelöscht (im Endeffekt möchte ich alle vorherigen Linien noch behalten).


Eigentlich dachte ich es geht mit folgendem Befehl, aber vordergründig ändert sich gar nichts - selbst wenn ich ihn rausnehme...
set(h,'erasemode','none');

Prog:
Code:

val = [1 1 2 2];
h = line(val(1:2),val(3:4),'linewidth',5,'color','r');

axis([-50 50 -50 50]);
set(h,'erasemode','none');
hold on;
for i = 1:10
 val([1,3]) += [1,4];
 val([2 4]) -= [2,1];
 set(h, 'xdata', val(1:2), 'ydata',val(3:4))
 pause(1);
 drawnow;
endfor
 

Vielen Dank für jede Hilfe!!


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 27.03.2014, 18:06     Titel:
  Antworten mit Zitat      
Hallo

so würde das doch nie gehen, erstens muss du genau so viele Linien-Objekte haben, damit sie diese auch überhaupt eingezeichnet werden können.
Da du nur eine Linie hast, verändert sich nur ihre Position.

also irgendwie so:

Code:

val = repmat([1 1 2 2],10,1);

h = plot(val(:,1:2)',val(:,3:4)','linewidth',5, 'color', 'r');

axis([-50 50 -50 50]);
% set(h,'erasemode','none');
% hold on;

for i = 2:10
 val(i,[1,3]) = val(i-1,[1,3]) + [1,4];
 val(i,[2,4]) = val(i-1,[2,4]) + [2,1];
 set(h(i), 'xdata', val(i,1:2), 'ydata',val(i,3:4))
 pause(1);
 drawnow;

 end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast-Hi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2014, 22:11     Titel:
  Antworten mit Zitat      
mhn... das wäre schlecht. Ich dachte es müsste eine Möglichkeit geben, dass eben auf das alte Bild gezeichnet wird, ohne die die alten Zeichnungen zu löschen.

In meinem Hauptprogramm ist das mit deinem Vorschlag leider so einfach nicht möglich, da ich eine Simulation habe in der Partikel zufällig in einer vorerst open-end Simulation sich bewegen (und ich hierbei eben den verlauf und nicht nur die aktuelle Position sehen möchte).
 
Gast-Hi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2014, 22:15     Titel:
  Antworten mit Zitat      
okay, ich habs...
scheint ein bug in Octave zu sein. Denn jetzt habe ich es gerade in Matlab gestartet und es geht alles wie ich es haben wollte Smile

Merci
 
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 - 2024 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.