Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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中旋转Rect对象_Java_Android - Fatal编程技术网

Java 如何在Android中旋转Rect对象

Java 如何在Android中旋转Rect对象,java,android,Java,Android,好的,我已经用下面的代码在画布上创建了一个矩形 Rect r =new Rect((point.x - rectWidth / 2), (point.y - rectHeight / 2),(point.x-rectWidth / 2),(point.y + rectHeight / 2)); 点是由触摸事件确定的矩形的中心。但是现在我想能够旋转这个矩形。是否有任何代码或方法允许用户围绕形状中心旋转形状。我还对得到这样一个矩形的角点感兴趣。感谢您的帮助。谢谢 要围绕其自身中心旋转矩形(相对于原

好的,我已经用下面的代码在画布上创建了一个矩形

Rect r =new Rect((point.x - rectWidth / 2), (point.y - rectHeight / 2),(point.x-rectWidth / 2),(point.y + rectHeight / 2));

点是由触摸事件确定的矩形的中心。但是现在我想能够旋转这个矩形。是否有任何代码或方法允许用户围绕形状中心旋转形状。我还对得到这样一个矩形的角点感兴趣。感谢您的帮助。谢谢

要围绕其自身中心旋转矩形(相对于原点):

您还可以使用
Matrix.mapPoints()
查找角点的变换方式。

使用以下方法:

Rect r2 = new Rect(r1);
Matrix mat = new Matrix();
mat.setRotate(-90, r2.centerX(), r2.centerY());
mat.mapRect(r2);

使用一个矩阵围绕它的中心旋转一个矩形。你能告诉我如何在矩阵上加一个矩形吗;矩阵mapRect(r);然后旋转矩形你找到解决方案了吗?这不是一个可绘制的,我正在画布上绘制矩形。你如何围绕它的中心旋转它?我认为它无法提供所需的效果,因为数据结构矩形仅表示为水平矩形。矩阵确实会旋转其组成点(左上角和右下角),但Rect对象将保持为水平矩形。
Rect r2 = new Rect(r1);
Matrix mat = new Matrix();
mat.setRotate(-90, r2.centerX(), r2.centerY());
mat.mapRect(r2);