Verfasst am: 17.09.2010, 13:25
Titel: Änderung der Größe der Marker in Abhänigkeit vom Zoomfak
Hallo,
haenge gerade bei einem Problem wo ich absolut keine Idee habe wie ich es loesen kann.
Ich habe einen Plot mit eigenen Markern, die ich mit dem text Befehl erzeugt habe:
Code:
x = 0:.5:2*pi;
y = sin(x);
plot(x,y) hold on
text(x,y,'\mid','Interpreter', 'tex', 'HorizontalAlignment', 'center','VerticalAlignment','middle', 'Color',[100],'FontSize', 15);
Nun moechte ich gern den plot zoomen und dabei auch die Fontsize der Marker mit vergroessern bzw verkleinern (zoom out). Gibt es eine Moeglichkeit zu erkennnen wenn der User den Zoombutton gedrueckt hat und dann, wie bei einer Gui, eine Art Callback hat wo man noch eigene Erweiterungen bzw. Funktionen implementieren kann?
vielen Dank für den Tipp mit der line, das ist echt genial. Jedoch würde mich trotzdem mal interessieren wie es denn wäre wenn ich als Marker z.B. bliebigen Text habe oder z.B. bst. Punkte in einem Bild beschriften möchte UND ich beim zoom eben den Text auch vergrößert haben möchte.
Um bei dem alten Beispiel zu bleiben:
Zugriffe auf den Zoom Button erkennen und die Schriftgröße der Texte ändern kann.
Meine Frage wäre nun noch wie man erkennt ob rein- oder rausgezoomt wurde, da beide Buttons diesen Calback ansprechen und ob es vielleicht noch eine elegantere Lösung gibt?
der ActionPostCallback wird "nach" der Action ausgegführt. Dann hat das AXES-Object bereits die neuen Limits. Die Y-Limits kannst Du dann verwenden um die angezeigte Größe zu erfahren und die FontSize "entsprechend" anpassen:
Code:
function zoom_callback(obj, evd, t)
AxesH = ancestor(t(1), 'axes');
YRange = diff(get(AxesH, 'YLim'));
set(t, 'FontSize', YRange / 10);
end
Fuer das Value habe ich eine Umrechnugsgleichung, die mir eben je nach Axengroesse einen angebrachte Schriftgroesse liefert. Denn nur durch 10 teilen das geht nicht wirklich, da z.B. beim vergroessern die Schriftgroesse kleiner wird (aber sie sollte ja groesser werden). Naja wie auch immer...Danke nochmal.
MFG
Sco
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.