2012-05-01 89 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是非常簡單的實際...但我需要有人在我看到它自己之前給我看。

解決的辦法是把它放大exponentialy,所以

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

的伎倆,你可以這樣做

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

,使其在更小的滾動「步驟」。