JS画布逐渐缩放

js canvas gradual zoom?

本文关键字:缩放 布逐渐 JS      更新时间:2023-09-26

我一直在做一个非常血腥的巨大模拟,这意味着有必要放大和缩小。

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

这是一个问题,因为无论您的缩放级别如何,我都需要步骤相等。

我现在使用的脚本是:

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)

稍后我将使用缩放比率来计算各种对象的位置。

谁知道更好的放大方法?

anwser实际上非常简单...然而,在我自己看到它之前,我需要有人给我看。

解决方案是让它呈指数级缩放,因此

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

这个技巧,你可以做一些类似的事情

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

使其以较小的"步骤"滚动。