Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Android画布获取转换坐标_Java_Android_Android Canvas - Fatal编程技术网

Java 从Android画布获取转换坐标

Java 从Android画布获取转换坐标,java,android,android-canvas,Java,Android,Android Canvas,我正在传递一个对象,让Android使用它的画布进行绘制。要旋转以匹配地平线的对象。我试图找到canvas根据给定的点和角度计算的平移点 例如: 我使用以下画布方法来绘制它。其中x,y是屏幕坐标,旋转是屏幕相对于地平线的旋转 canvas.save(); canvas.translate(x,y); canvas.rotate(rotation); obj.paint(canvas); canvas.restore(); obj.paint看起来像这样,但您可能不需要知道它: canvas.s

我正在传递一个对象,让Android使用它的画布进行绘制。要旋转以匹配地平线的对象。我试图找到canvas根据给定的点和角度计算的平移点

例如:

我使用以下画布方法来绘制它。其中x,y是屏幕坐标,旋转是屏幕相对于地平线的旋转

canvas.save();
canvas.translate(x,y);
canvas.rotate(rotation);
obj.paint(canvas);
canvas.restore();
obj.paint看起来像这样,但您可能不需要知道它:

canvas.save();
canvas.translate(-width/2, -height/2);

setFill(true);
setColor(backgroundColor);
paintRect(canvas, x, y, width, height);

setFill(false);
setColor(borderColor);
paintRect(canvas, x, y, width, height);

canvas.restore();
paintRect看起来像这样:

canvas.drawRect(x, y, x + width, y + height, paint);
我想弄清楚的是;旋转后,图中绿色矩形的角点是什么


这是我所期望的结果图像。

为什么不使用canvas.getMatrix.mapPoints单独映射每个矩形坐标?虽然canvas.getMatrix在API级别16中已被弃用,但这可能是一个开始。您知道如何在不使用弃用方法的情况下实现它吗?