Verfasst am: 27.11.2009, 15:27
Titel: aktuellen punkt anders ploten
hallo!
ich hab mal eine frage... und zwar:
ich lasse mir alle 1,5 sec einen punkt einer kreisbahn ploten. nun möchte ich den aktuellen punkt dieser kreisbahn mit einem besonderen zeichnen(am besten ein schiff, dass sich auch in die gefahrene richtung mitdreht ) und die schon geploteten punkte anders darstellen. wie geht das?? hab man irgendwie die möglichkeit auf den zuletzt geploteten punkt zuzugreifen?!?
Das ist zwar nicht genau was du willst, müsste aber gehen: Alle Werte bis auf den letzten mit einem Linestyle plotten, und dann den letzten Wert mit anderem Linestyle mit hold on drüberplotten. Mit einer Schleife müsstest du den Plot dann nach jedem neuen Wert komplett neu machen. Das wäre natürlich langsam und unelegant, würde aber funktionieren.
Wie und ob man überhaupt Zugriff auf einzelne Werte im figure bekommt, kann ich dir leider auch nicht sagen. Vielleicht weiß da ja wer anders mehr zu.
das würde nicht funktionieren. ich bekomm immer einen neuen messwert von einem targetpc, der die messwerte für die kreisfahrt liefert. hier mal ein programmausschnitt:
Warum genau würde das nicht gehen? Du könntest doch deine Messwerte in einem Vektor abspeichern, und bei jedem neuen Wert komplett neu plotten.
Code:
x_pos=[x_pos getsignal(tg2,sig_id.long_id)];
y_pos=[y_pos getsignal(tg2,sig_id.lat_id)];
plot(x_pos(1:end-1),y_pos(1:end-1),'r.') hold on
plot(x_pos(end),y_pos(end),'b.')
wenn ich das so mach, ist die syntax falsch. ich bräuchte noch dann quasi nur den aktuellen wert und den vorigen wert oder nicht. so wird das feld nicht unendlich groß.
Die Zeile hängt einfach den neuen Wert an den Ergebnisvektor hinten dran.
Benedikt hat Folgendes geschrieben:
wenn ich das so mach, ist die syntax falsch. ich bräuchte noch dann quasi nur den aktuellen wert und den vorigen wert oder nicht. so wird das feld nicht unendlich groß.
Wahrscheinlich deshalb, weil du x_pos nicht initialisiert hast. Beim 1. Zugriff existiert x_pos noch nicht, deshalb musst du x_pos und y_pos vorher leer initialisieren.
ich bräuchte noch dann quasi nur den aktuellen wert und den vorigen wert oder nicht. so wird das feld nicht unendlich groß.
Du bräuchtest schon alle Werte, weil du sonst nur die beiden letzten Werte plottest. Du kannst den Vektor natürlich irgendwann auf eine bestimmte Länge begrenzen, dann gingen dir aber entsprechend die vorhergehenden Werte verloren.
old_ship_plot dient als abspeicherung des alten schiffsplot und n ist eine zählvar, damit das fehlt old_ship_plot nicht so groß wird. alles nicht so schön aber selten
vielleicht hat ja einer von euch einen besseren vorschlag. wenn ja, postet bitte!!
gruß
bene
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.