我有許多對象代表想要在畫布上繪製的圖像。每個對象都有一個X,Y,Scale屬性以及一個傳遞畫布對象的渲染方法。那麼畫布標籤就會傳遞給每個對象的渲染方法,並且他們都需要將自己渲染到畫布上。在HTML5畫布中縮放圖像
我遇到的問題是縮放是從畫布的原點進行的,而不是圖像的原點。爲了解決這個問題,我嘗試了以下內容:
canvas.translate(-this.X, -this.Y);
canvas.scale(this.Scale, this.Scale);
canvas.translate(this.X, this.Y);
與上面的代碼的問題是,它看起來像你只能有1名翻譯和這應該移動的對象回到原來的位置,3號線在調用drawImage時變成翻譯。如果我刪除第三行,我會得到正確的縮放原點,但圖像將移動到0,0並且不會呈現在正確的位置。
做這種縮放類型的正確方法是什麼?
也許我不理解翻譯是如何工作的,不會將第1行翻譯所有點+ this.X,+ this.Y離開原來的位置? – Mikeb 2011-12-14 21:02:10