我有矩阵。该矩阵表示数组 x 和 y 坐标。例如
float[] src = {7,1,7,2,7,3,7,4};
我需要将这个坐标旋转 90 度。
我像这样使用 android.graphics.Matrix
:
float[] src = {7,1,7,2,7,3,7,4};
float[] dist = new float[8];
Matrix matrix = new Matrix();
matrix.preRotate(90.0f);
matrix.mapPoints(dist,src);
旋转操作后我得到了带有下一个值的数组
-1.0 7.0 -2.0 7.0 -3.0 7.0 -4.0 7.0
它适用于 360 度区域。
以及如何在区域中从 0 旋转到 90?我需要在此区域设置圆心,但如何设置?
谢谢。
最佳答案
使用setRotate
,而不是preRotate
:
setRotate
将矩阵初始化为旋转矩阵。preRotate
将当前矩阵乘以一个旋转矩阵M' = M×R
由于您从单位矩阵开始调用默认构造函数。
记住矩阵乘法不可交换。
关于java - 安卓旋转矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2767407/