我正在尝试在Java中逆时针旋转矩阵90度。我找到了如何用2D矩阵做到这一点的答案,但我的矩阵是3D。
以下是我如何进行2D旋转的方法:
static int[][] rotateCW(int[][] mat) {
final int M = mat.length;
final int N = mat[0].length;
int[][] ret = new int[N][M];
for (int r = 0; r < M; r++) {
for (int c = 0; c < N; c++) {
ret[c][M-1-r] = mat[r][c];
}
}
return ret;
}
那我怎么去旋转3D矩阵?
答案 0 :(得分:7)
将矩阵乘以rotation matrix
x轴的基本矩阵是:
| 1 0 0 |
Rx(a) = | 0 cos(a) -sin(a) |
| 0 sin(a) cos(a) |
对于90度,只需设置cos(90)= 0和sin(90)= 1,这应该导致:
| 1 0 0 |
Rx(a) = | 0 0 -1 |
| 0 1 0 |