2012-03-06 4 views
0

これはdrawImage()の機能に関する質問です。キャンバスに `drawImage()`の参照ポイントは何ですか?

var x = (i-j)*(img[0].height/2) + (ctx.canvas.width/2)-(img[0].width/2); 
    var y = (i+j)*(img[0].height/4); 
    abposx = x + offset_x; 
    abposy = y + offset_y; 
    ctx.drawImage(img[0], abposx, abposy); 

このコードは、キャンバス内にオフセットを含むイメージを描画します。私が知りたがっていたことは、 "drawImage"でした...イメージの左隅で位置またはその中央に配置しますか?

左隅を使用している場合は、イメージの中心に基づいて配置するように変更する方法はありますか?

答えて

1

キャンバスの座標系は、左上隅の(0,0)から始まります(source)。

したがって、drawImageは左上隅から描画します。

イメージの中心を使って、単にwidth/2height/2でオフセットすることで描画できます。

あなたには、いくつかの中心点pを持っているのであれば、

drawImage(image, p.x - image.width/2, p.y - image.height/2)

は、左上隅からの描画に相当します。

+0

中心点はどういう意味ですか? pのない画像の半分の幅と高さでイメージをオフセットできませんでしたか? – Sir

+0

この場合、中心点 'p'は' abposx'と 'abposy'で構成されています。私はあなたと私は実際に同じことを言っていると思います。私はちょうどもっと一般的な用語を使用しました。ここで 'p'はキャンバス上で画像の中心をどこにするかです。 –

+0

だからabposx - image.width/2 は本質的に "画像の幅の半分が高さと同じです - それでそれはそのようにしていますか?私はそれを得ると思います:) – Sir

関連する問題