2

我正在尝试根据缩放级别计算变量。

例如,我在缩放级别 1 有一个 4x4 的瓷砖网格。现在我放大一次,它会在缩放级别 2 时变为 8 * 8。再次放大,在缩放级别 3 时它将是 16 * 16。等等。

现在我唯一存储的是缩放级别 1 中的两个数字,例如可以更改为 5x4 甚至 1x1。

所以我的问题是如何仅使用这两个数字和缩放级别来计算缩放级别 2 和 3 及以上的宽度和高度?

提前致谢。

4

2 回答 2

1

做同样事情的一种更巧妙的方法是使用位移,因为每个缩放级别总是乘以 2 的幂。

var x = this.data.Size.X;
var y = this.data.Size.Y;

x = x << (zoom-1);
y = y << (zoom-1);
于 2013-09-10T19:58:45.610 回答
0

感谢 jmstoker,我已经弄清楚如何让它正常工作

var x = this.data.Size.X;
var y = this.data.Size.Y;
for (var i = 1; i < zoom; i++) {
    x += x;
    y += y;
}

我只是得到每边的平铺计数,并通过不包括级别 1 的缩放级别的数量,并将每个缩放级别的计数添加到自身。

于 2013-09-10T18:36:47.203 回答