|
|
x und y Achsenwert eines Mausklicks ausgeben |
|
Carassius |

Forum-Newbie
|
 |
Beiträge: 1
|
 |
|
 |
Anmeldedatum: 29.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.11.2012, 06:27
Titel: x und y Achsenwert eines Mausklicks ausgeben
|
 |
|
 |
|
Hallo zusammen,
ich bin leider ein ziemlicher Matlab-Noob und hab deshalb eine Frage, die vielleicht schon hundert mal beantwortet wurde. Ich konnte aber auch nach mehrstuendiger Suche nicht die passende Antwort finden, also entschuldigt bitte, wenn mein Problem bereits hier irgendwo im Forum behandelt wurde.
Ich habe einen Code in dem unter anderem eine figure mit x- und y- Achse erstellt wird. Der User soll nun die Moeglichkeit haben auf einen Datenpunkt in der figure zu klicken, wodurch sich ein neues Fenster mit einem Graphen oeffnen soll, der mit den x- und y-Werten des geklickten Datenpunkts arbeitet.
Ich hoffe, dass ich das soweit verstaendlich ausgedrueckt habe
Mein Problem ist, dass ich bis jetzt noch keine funktionierende Moeglichkeit gefunden habe, den x-und y-Wert des geklickten Datenpunktes auszulesen (so wie es beim Data Cursor angezeigt wird) und diese an die callback Funktion weiterzugeben.
ginput gibt mir zwar x- und y-Werte zurueck, allerdinds sind das nicht die Werte bezueglich der Achsen in der figure, sondern eher die Position der Mausklicks im gesamten Fenster als Pixelwerte (das ist zumindest meine Vermutung). Ausserdem fuehrt der Mausklick ueber ginput nicht automatisch eine callback Funktion aus.
Deshalb habe ich jetzt "ButtonDownFcn' versucht, allerdings wird auch hier die Position relativ zum Fensterursprung ausgegeben und nicht die x- bzw. y-Position. Hinzu kommt, dass auch nur dann Werte angezeigt werden, wenn man sich in der Naehe des Fensterrandes befindet.
Hier waere mal der Code meiner (vereinfachten) Callback Funktion:
function callbackfcn(gcbo)
pos = get(gcbo,'CurrentPoint');
disp(pos);
end
Ich hoffe, es hat jemand eine Idee und kann mir weiterhelfen, ich bin naemlich langsam am verzweifeln :/
Vielen Dank schonmal!
Gruss
Carassius
|
|
|
|
|
keywee |

Forum-Fortgeschrittener
|
 |
Beiträge: 64
|
 |
|
 |
Anmeldedatum: 29.11.12
|
 |
|
 |
Wohnort: Berlin
|
 |
|
 |
Version: R2012a
|
 |
|
|
 |
|
Verfasst am: 18.12.2012, 10:27
Titel:
|
 |
also wenn du beispielsweise ein Image darstellt und es mit hilfe eines handles.axis einlaedst kannst du mit der InitialMagnification, 100 dafuer sorgen das dir ginput auch wirklich die original pixelwerte wieder gibt! ich denke bei einen graphen wird es aehnlich sein... erstelle doch einfach mal eine einfach graph wo du dir einen punkt anguckst den du genau kennst!
imshow(IMAGE,'InitialMagnification',100);
[x,y] = ginput(1)
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|