计算瓷砖的缩放级别

时间:2013-09-10 17:45:53

标签: math

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

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

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

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

执行相同操作的一种更流行的方法是使用位移,因为每个缩放级别总是乘以2的幂。

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

x = x << (zoom-1);
y = y << (zoom-1);

答案 1 :(得分: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级的缩放级别,并为每个缩放级别添加计数。