0

我在我的项目中使用 svgpanzoom 库(github 存储库上的链接)。我正在设置一些初始值:

var minValue = 0.8;
var maxValue = 6;
var numberOfSteps = 5;

instance.setMinZoom(minValue);    
instance.setMaxZoom(maxValue);

之后,我尝试计算并设置 zoomScaleSensitivity 的新值:

var newValueForZoomScale = (maxValue - minValue) / numberOfSteps;
instance.setZoomScaleSensitivity(newValueForZoomScale);

不幸的是,在这种情况下,我有 6 或 7 个缩放步骤(取决于屏幕分辨率)。我的问题是如何为 zoomScaleSensitivity 设置正确的值并且始终只有 5 (numberOfSteps) 个缩放步骤?

4

1 回答 1

0

尝试

var newValueForZoomScale = (maxValue - minValue) / (numberOfSteps - 1);

那是因为如果你除以 N,你会得到 N+1 步,比如:

  • 如果开始是 1
  • 如果结束是 6
  • 除以 5(您想要的步数)并获得(6-1)/5 = 1步距
  • 您将获得 6 个步骤:1、2、3、4、5、6

所以你必须除以 4,然后你会得到(6-1)/4 = 1.255 个步骤:1、2.25、3.5、4.75、6

于 2017-11-25T20:20:41.157 回答