How to use the victory-chart/src/components/victory-zoom/helper-methods.scale function in victory-chart

To help you get started, we’ve selected a few victory-chart examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github FormidableLabs / victory-native / lib / components / victory-zoom.js View on Github external
const windowWidth = Dimensions.get("window").width;
    const distanceDelta = currentDistance - pinchState.initialDistance;

    // when zooming out, apply a multiplier to the scale factor to make
    // the zoom-out velocity match the equivalent zoom-in velocity
    let scaleMultiplier = 1;
    if (distanceDelta < 0) {
      const [initialStart, initialEnd] = pinchState.initialDomain.x;
      const [dataStart, dataEnd] = this.getDataDomain().x;
      if (initialStart !== initialEnd) {
        scaleMultiplier = Math.abs(dataEnd - dataStart) / Math.abs(initialEnd - initialStart);
      }
    }

    const scaleFactor = 1 - ((distanceDelta / windowWidth) * scaleMultiplier);
    const nextXDomain = ZoomHelpers.scale(
      pinchState.initialDomain.x,
      this.getDataDomain().x,
      scaleFactor
    );
    this.setDomain({ x: nextXDomain });
  }
github FormidableLabs / victory-chart-native / lib / components / victory-zoom.js View on Github external
const windowWidth = Dimensions.get("window").width;
    const distanceDelta = currentDistance - pinchState.initialDistance;

    // when zooming out, apply a multiplier to the scale factor to make
    // the zoom-out velocity match the equivalent zoom-in velocity
    let scaleMultiplier = 1;
    if (distanceDelta < 0) {
      const [initialStart, initialEnd] = pinchState.initialDomain.x;
      const [dataStart, dataEnd] = this.getDataDomain().x;
      if (initialStart !== initialEnd) {
        scaleMultiplier = Math.abs(dataEnd - dataStart) / Math.abs(initialEnd - initialStart);
      }
    }

    const scaleFactor = 1 - ((distanceDelta / windowWidth) * scaleMultiplier);
    const nextXDomain = ZoomHelpers.scale(
      pinchState.initialDomain.x,
      this.getDataDomain().x,
      scaleFactor
    );
    this.setDomain({x: nextXDomain});
  }