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

Toolbar; "Zoom in"- Button; achsenskalierung speic

 

wicki
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.07.08
Wohnort: ---
Version: 2009a
     Beitrag Verfasst am: 07.01.2009, 18:07     Titel: Toolbar; "Zoom in"- Button; achsenskalierung speic
  Antworten mit Zitat      
Servus Welt,

ich habe mit GUIDE ein GUI erstellt, welches verschiede Subplots zeichnet. Zusätzlich gebe ich dem Benutzer einen Toolbar, welcher u.a. die beiden "zoom" -buttons enthält. Jeder Subplot hat zusätzlich noch 4 Editboxen, über welche die Grenzen verändern werden können.

Problem:
Ich würde gerne im Falle eines Zooms über den Button "zoom", wenn also der Benutzer mit Hilfe der Lupe reinzoomt, die Editboxen dynamisch aktualisieren.

Zwar werden beim zoomen die "XLim" u. "YLim" Werte automatisch angeglichen, aber nur innerhalb der aktiven axes. Sie sollen aber auch dynamisch an die Boxen gegeben werden.

Hoffe ihr werdet daraus schlau;
Grüße,
Wicki
Private Nachricht senden Benutzer-Profile anzeigen


dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2009, 21:17     Titel:
  Antworten mit Zitat      
Hallo,

in der Hilfe zu "zoom" finden sich schon einige gute Hinweise. Ich würde die "ActionPostCallback" Funktion besetzen, und zwar mit einer Funktion, die aus dem Zoom-Objekt den Zoomfaktor und die Richtung rausliest und den resultierenden Faktor mit dem im Editfeld stehenden Wert verrechnet.

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
wicki
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.07.08
Wohnort: ---
Version: 2009a
     Beitrag Verfasst am: 08.01.2009, 16:03     Titel:
  Antworten mit Zitat      
Servus!

Du hattest recht, die von dir vorgeschlagene Lösung klappt einwandfrei!

Vielen Dank nochmals,
Wicki
Private Nachricht senden Benutzer-Profile anzeigen
 
hobsi
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 07.09.10
Wohnort: BW
Version: Version 7.9.0.529 (R2009b)
     Beitrag Verfasst am: 07.09.2010, 20:15     Titel:
  Antworten mit Zitat      
Hallo,

mit der Hilfe des 'ActionPostCallback' rufe ich nach dem zoomen wie in der Hilfe beschrieben eine eigene Funktion auf...

Code:

h = zoom;
set(h,'ActionPostCallback',@mypostcallback);
set(h,'Enable','on');
 


in der eigenen Funktion hole ich dann die Limitwerte der X- und Y-Achse.

Code:

function mypostcallback(obj, evd)
lim_xachse = get(evd.Axes,'XLim');
lim_yachse = get(evd.Axes,'YLim');
 


Soweit ist alles klar. Nun komm ich aber nicht mehr weiter weil ich nicht weiß, wie ich die Werte an eine andere Funktion in meinem GUI übergeben kann. 'handles' funktioniert leider nicht.

Der gescheiterte Versuch mit 'handles' sah so aus...

Code:

function mypostcallback(obj, evd, handles)
handles.lim_xachse = get(evd.Axes,'XLim');
handles.lim_yachse = get(evd.Axes,'YLim');

%Update handles structure
%guidata(handles);
 


Es kommt folgende Warnung…

Warning: An error occurred during the mode callback.
> In uitools.uimode.fireActionPostCallback at 14
In zoom>local2DButtonUpFcn at 1321
In hgfeval at 63
In uitools.uimode.modeWindowButtonUpFcn at 27
In uitools.uimode.setCallbackFcn>localModeWindowButtonUpFcn at 38

und die Daten befinden sich nicht im 'handles'.

Die Variante die Werte direkt nach dem auslesen in die Editboxen zu schreiben geht auch nicht.

Code:

function mypostcallback(obj, evd, handles)
lim_xachse = get(evd.Axes,'XLim');
lim_yachse = get(evd.Axes,'YLim');

set(handles.edit_ymin,'String', lim_xachse(1,1));
set(handles.edit_ymax,'String', lim_xachse(1,2));
…
 


Es kommt die gleiche Warnung wie oben und die Editboxen bleiben leer.

Komm nicht ganz dahinter warum das mit dem 'handles' nicht funktioniert... Kann mir jemand weiterhelfen...

Schon mal vielen Dank! Gruß hobsi
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 - 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.