2012-05-01 5 views
1

私は非常に血まみれの巨大なシミュレーションに取り組んできました。つまり、ズームインとズームアウトが必要になってきました。jsキャンバス漸次ズーム?

私は良い作業スクリプトを見つけましたが、シミュレーションが大きくなったときに問題があることがわかりました... ズームインするほど、ステップが小さくなり、ズームするほど大きくなります。

ズームレベルがどのようであっても、同じ手順にする必要があるため、これは問題です。

私が今使っているスクリプトは次のとおりです。

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

anwserは実際には非常にシンプルですが、私はそれを見た前に誰かに私を見せなければなりませんでした。

ソリューションはとても

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

が、あなたはそれが小さな「ステップ」にスクロールするようにするには

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

ような何かをトリックを行うことができない、それはexponentialyズーム持つことです。

関連する問題