1

我一直在研究一个非常庞大的模拟,这意味着放大和缩小变得有必要。

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

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

我现在使用的脚本是:

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 来计算各种对象的位置。

谁知道放大的更好方法?

4

1 回答 1

1

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

解决方案是让它以指数方式缩放,所以

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

诀窍,你可以做类似的事情

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

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

于 2012-05-02T09:50:49.160 回答