How to prevent zooming out past a specific extent in UIAxes?

4 visualizzazioni (ultimi 30 giorni)
How do I prevent user from zooming out past an extent in App Designer? In this example I do not want the user to be able to manually zoom out past [180 180] on xaxis or [-90 90] on yaxis. I attached a picture to illustrate.

Risposta accettata

Nitin Kapgate
Nitin Kapgate il 12 Ott 2020
To limit the user from zooming out past an extent, you can add a custom zoom button (of 'push' button type) to the UIAxes.
In the custom callback for the custom Zoom button, query the current X and Y axis limits for the UIAxes object. If ther X and/or Y limits after zooming out go beyond ehat is required, set the X and Y limits of the UIAxes to the limits you desire.
You can refer this documentation to learn more about adding a custom button to UIAxes.
  2 Commenti
meghannmarie
meghannmarie il 13 Ott 2020
How do I program the callback function to zoom out? I tried this and it didn't work:
tb = axtoolbar(app.UIAxes,{'zoomin','restoreview'});
btn = axtoolbarbtn(tb,'state');
btn.Icon = 'zoomout';
btn.Tooltip = 'Zoom Out';
btn.ValueChangedFcn = @zoomOut;
function zoomOut
zoom(app.UIAxes,'Direction','out')
end
I have not tried to implement the X/Y limits yet, just trying to get it to zoom out...
meghannmarie
meghannmarie il 13 Ott 2020
I also tried:
set(zoom(app.UIAxes),'ActionPostCallback',@(x,y) zoomLimits(app))
but then I lose ability to zoom completely.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Visual Exploration in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by