js帆布逐渐变焦?

时间:2012-05-01 17:33:26

标签: javascript canvas zoom

我一直在研究一个非常血腥的模拟,这意味着它必须放大和缩小。

我找到了一个好的工作脚本但是当模拟变大时我发现它有问题...... 放大的越多,步数越小,缩小越远,越大。

这是一个问题,因为无论你有什么缩放级别我都需要相同的步骤。

我现在使用的脚本是:

var total = 75,
    delta = e.detail ? e.detail * -120 : e.wheelDelta; //e is mouse event

this.zoomValue += (delta > 0) ? 1 : -1;

this.zoomRatio = 1 + (this.zoomValue / total) * 2;
e.preventDefault();

你可以在这里看到它:http://clanpvp.com/sol(如果它不起作用,我要么摆弄它,要么你正在使用Internet Explorer)

我稍后使用zoomRatio来计算各种物体的位置。

谁知道更好的放大方式?

1 个答案:

答案 0 :(得分:1)

anwser非常简单......但在我亲眼看到之前我需要有人给我看。

解决方案是让它以exponentialy缩放,所以

this.zoomRatio = Math.exp(this.zoomValue);

诀窍,你可以做点什么

this.zoomRatio = Math.exp(this.zoomValue / 10);

使其以较小的“步骤”滚动。