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

Veränderbare Punkte mit Linie dazwischen

 

Vim90

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2014, 09:08     Titel: Veränderbare Punkte mit Linie dazwischen
  Antworten mit Zitat      
Hallo!

Ich möchte eine Art Annotationstool in einem GUI erstellen, bei dem zwei Punkte auf dem aktuellen Plot platziert werden. Die Positionen dieser Punkte sollen vom Nutzer mit der Maus veränderbar sein. Gleichzeit soll immer "live" eine Linie zwischen den beiden Punkten gezeichnet werden.

Da ich die Image Processing Toolbox habe, habe ich mich für die Funktion "impoint" entschieden. Mit ihr ist es sehr leicht, zwei Punkte im Plot zu platzieren und diese herumzuschieben.
Schwierigkeiten habe ich mit der Umsetzung der Linie zwischen den beiden Punkten.

Nehmen wir an, meine beiden Punkte heißen "first" und "second". Dann mache ich es momentan so:
Code:
addNewPositionCallback(first,@(pos) newPosFirst(getPosition(second),pos));
 

mit der folgenden Definition von "newPosFirst":
Code:

function newPosFirst(secondPos, pos)
hold on; h = drawEdge([secondPos pos], 'Color', 'red', 'LineWidth', 2.5); hold off

wobei drawEdge eine Funktion des "geom2d" packets von FileExchange ist.

Probleme sind:

    Die alten Linien werden nicht gelöscht
    Das Verschieben des Punktes "first" ist sehr ruckelig durch den neuen Callback


Kann mir jemand von euch erklären, wie ich eines (oder gerne beide) dieser Probleme löse?

Danke,
Wimme


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 01.02.2015, 12:19     Titel:
  Antworten mit Zitat      
Hallo Wimme,

ich vermute es liegt an dem HOLD ON in deiner Callback, dass die alten Linien nicht gelöscht werden. Evtl. kannst du diese auch über ihr Handle manuell bei erneutem Aufruf der Funktion löschen.

Gruß
Steve
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
eman
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 10.02.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.02.2015, 13:47     Titel: a
  Antworten mit Zitat      
An sich soll der neue Button neue Pop-ups erstellen untereinander...
_________________

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