2012-01-17 30 views
2

私はタッチポイントで中心を持つキャンバスに矩形を描こうとしています。私は次のコードを使用しています:タッチポイントで中心を持つキャンバスに矩形を描く

canvas.drawRect((point.x + 15), (point.y + 15),(point.x + 15),(point.y + 15), paint); 

しかし、それは動作しません。

しかし、私は驚くほど、

canvas.drawRect(point.x , point.y ,(point.x + 30),(point.y + 30), paint); 

を使用する場合、それが動作します。しかし、唯一の害はタッチ座標の中心にないことです。矩形の左上はタッチ座標と一致します。 どこが間違っていますか?

答えて

7

あなたのx、yのペアは、両方の

(point.x + 15), (point.y + 15) 

は、あなたが最初のペアが

(point.x - 15), (point.y - 15) 
+0

Oops..Thatが私の愚かでした!ありがとうございました! –

4

あなたの最初の例では、それはそれはdidnのように見えた理由である1つの画素ドットを描いていたことにしたいです仕事はありません。

が接触点で30pxの四角形を描画するには、この

canvas.drawRect(point.x - 15 , point.y - 15 , point.x + 15, point.y + 15, paint); 
+0

申し訳ありませんが、私は正解として他の答えを受け入れる必要があります、その人はより速かったです。 :) –

0

はこれを試してみてください:

int rectWidth = 15; 
int rectHeight = 15; 

canvas.drawRect((point.x - rectWidth/2), (point.y - rectHeight/2),(point.x + rectWidth/2),(point.y + rectHeight/2), paint);