2

我试图在 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 矩阵呢?

4

1 回答 1

10

通过将矩阵与旋转矩阵相乘

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    |
于 2013-01-16T21:14:56.460 回答