swh:1:snp:3a4bc456f1832b81cfa640941c632f6d5535d3a4
Raw File
Tip revision: cd86b08de1e3b03a04b7def69418a9e9a1b5a441 authored by R. Wayne Oldford on 16 March 2021, 21:40:03 UTC
version 1.3.4
Tip revision: cd86b08
l_zoom.R

#' @title Zoom from and towards the center
#'   
#' @description This function changes the plot states \code{panX}, \code{panY}, 
#'   \code{zoomX}, and \code{zoomY} to zoom towards or away from the center of
#'   the current view.
#'   
#' @template param_widget
#' @param factor a zoom factor
#'   
#' @export
l_zoom <- function(widget, factor=1.1) {
    zoomX <- widget['zoomX']
    zoomY <- widget['zoomY']
    panX <- widget['panX']
    panY <- widget['panY']
    deltaX <-  widget['deltaX']
    deltaY <- widget['deltaY']
    
    fp <- (1/factor-1)/2
    new_panX <- panX - deltaX/zoomX * fp
    new_panY <- panY - deltaY/zoomY * fp
    
    l_configure(widget, panX=new_panX, panY=new_panY,
                zoomX=zoomX*factor, zoomY=zoomY*factor)
}
back to top