在我沿着中心旋转它们之后,我希望能够在画布上绘制文本和矩形。所以我正在制作一个测试用例,其中有一个不旋转的蓝色方块和一个应该旋转的红色方块。它们大小相同,应该共享相同的中心“枢轴点”。我有以下代码:
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();
它给了我一个接近我想要的结果,但我缺少一些数学,因为它看起来像画布也需要应用翻译。结果如下:
我缺少什么,以便我可以沿着蓝色矩形的中心旋转红色矩形,它们最终共享相同的中心点,如下所示: