我有矩阵.该矩阵表示阵列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 x R
因为您使用单位矩阵调用默认构造函数.
记住矩阵乘法不是可交换的.
标签:java,android
来源: https://codeday.me/bug/20190518/1130250.html