キャンバスに描画したい画像を表すオブジェクトがいくつかあります。各オブジェクトには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を呼び出すときの翻訳になります。私が3行目を削除すると、正しい拡大縮小元が得られますが、イメージは0,0に移動され、正しい位置にレンダリングされません。
このタイプのスケーリングを行う適切な方法は何ですか?
私は翻訳がどのように動作しているのか理解していないかもしれませんが、行1はすべての点+ this.X、+ this.Yを元の位置から翻訳しませんか? – Mikeb
翻訳が実際に原点を動かすように見えます。人生は今や理にかなっている。ありがとう! – Mikeb