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

benötige Objekt-Handle jedes Punktes im Plot

 

Baumann
Forum-Anfänger

Forum-Anfänger



Beiträge: 14
Anmeldedatum: 25.09.08
Wohnort: Braunschweig
Version: 7.12.0.635 (2011a)
     Beitrag Verfasst am: 05.07.2018, 13:02     Titel: benötige Objekt-Handle jedes Punktes im Plot
  Antworten mit Zitat      
Hallo,

ich habe größere Punktmengen (~1500 oder mehr) in 3D.

Nach dem plotten brauche ich von jedem Punkt den Objekt-Handle um den Plot nachträglich noch programmatisch manipulieren zu können.

Das geht wenn ich jeden Punkt mit einer Schleife einzeln plotte. Die Plot-Funktion gibt den Objekt-Handle dann jeweils zurück. Es dauert nur schrecklich lange.

Wenn ich ein Array mit allen Punkten in eine Plot-Funtion stecke, dann bekomme ich nur ein Line-Objekt-Handle zurück. An die Child-Objekte komme ich da nicht dran.

Kennt jemand eine weniger zeitaufwändige Möglichkeit die Punkte zu plotten und dann die Objekt-Handles zurückzubekommen? Bisher habe ich da nix gefunden.

Danke im Voraus.
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: 06.07.2018, 11:25     Titel: Re: benötige Objekt-Handle jedes Punktes im Plot
  Antworten mit Zitat      
Hallo Baumann,

Ein Line-Objekt ist ein Objekt und hat keine Children.
1500 einzelne Objekte zu Zeichnen wird auf jeden Fall Zeit kosten, denn das ist ein ziemlich großer Aufwand.

Zitat:
Nach dem plotten brauche ich von jedem Punkt den Objekt-Handle um den Plot nachträglich noch programmatisch manipulieren zu können.

Bist Du Dir da sicher? Man kann auch die XData, YData, ZData eines Line-Objekts auch im Nachhinein verändern.
Ich vermute, dass das die beste und effizienteste Lösung ist. Es kommt aber darauf an, was Du hinterher eigentlich manipulieren möchtest. Erkläre das mal genauer.

Nabenbei kann man plot aber durchaus so aufrufen, dass ein Array von Line-Objekten erzeugt wird:
Code:

Jetzt is H ein 2x1 Line Array. Vielleicht wäre es hilfreich, wenn Du Deinen Code postest und en Zweck der Übung nochmal ausführlich erklärst.

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

Forum-Anfänger

Forum-Anfänger



Beiträge: 14
Anmeldedatum: 25.09.08
Wohnort: Braunschweig
Version: 7.12.0.635 (2011a)
     Beitrag Verfasst am: 06.07.2018, 14:34     Titel:
  Antworten mit Zitat      
Hallo,

das Plot-Beispiel am Ende war genau das was ich brauchte. Das kannte ich noch nicht. Danke.

Die einzelnen Punkte lassen sich dann gesammelt mit einem Plot-Befehl plotten:

Code:

f = figure();
ax = axes('Parent', f);
x = [0.25, 0.5, 0.75];
y = [0.25, 0.5, 0.75];
z = [0.25, 0.5, 0.75];
x = vertcat(x, NaN(1, length(x), 1);
y = vertcat(y, NaN(1, length(y), 1);
z = vertcat(z, NaN(1, length(z), 1);
h = plot3(ax, x, y, z, '.');
 


Und in "h" stehen dann die gewünschten Objekt-Handles der Punkte.

Ich brauche die einzelnen Objekt-Handles hauptsächlich um ihnen dann jeweils eine ButtonDownFcn zuweisen zu können. Die Koordinaten will ich an dieser Stelle gar nicht verändern.

Kunden finden es immer toll wenn sie mit ihrer Maus in einer Grafik herumklicken können und dann auch noch etwas passiert. Mit der Tastatur sind die meisten Kunden überfordert.

Gruß

Olaf
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 - 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.