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

アンサーは実際には非常にシンプルです...それでも、自分で見る前に誰かに見せてもらう必要がありました.

解決策は、指数関数的にズームすることです。

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

トリックはありますか、次のようなことができます

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

小さな「ステップ」でスクロールするには。

于 2012-05-02T09:50:49.160 に答える