中心に沿って回転させた後、テキストと長方形をキャンバスに描画できるようにしたいと考えています。そのため、回転しない青い正方形と回転する必要がある赤い正方形があるテストケースを作成しています。それらは同じサイズであり、同じ中心の「ピボット ポイント」を共有する必要があります。次のコードがあります。
Paint p = new Paint();
p.setColor(Color.CYAN);
p.setAlpha(200);
canvas.drawRect(new Rect(100,100,300,300), p);
canvas.save();
canvas.rotate(45,250,250);// 250,250 is the center of the blue rectangle
p.setColor(Color.RED);
p.setAlpha(100);
canvas.drawRect(new Rect(100,100,300,300), p);
canvas.restore();
希望に近い結果が得られますが、キャンバスにも翻訳を適用する必要があるように見えるため、数学が不足しています。結果は次のとおりです。
赤い四角形を青い四角形の中心に沿って回転できるように、私が欠けているものは、次のように同じ中心点を共有することになります: