旋转矩阵CCW

时间:2013-11-26 15:46:31

标签: java matrix

我写了一个顺时针旋转2D矩阵的方法。

static double[][] rotateCW(double[][] mat) {
    final int M = mat.length;
    final int N = mat[0].length;
    double[][] ret = new double[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;
}

效果很好..但我也想创建一个旋转矩阵CCW的方法,我不确定我需要改变哪些值才能这样做。目前,我的“黑客”是使用这种方法三次旋转CCW。

1 个答案:

答案 0 :(得分:0)

我认为这种方式应该有效:

static double[][] rotateCCW(double[][] mat) {
    final int M = mat.length;
    final int N = mat[0].length;
    double[][] ret = new double[N][M];
    for (int r = 0; r < M; r++) {
        for (int c = 0; c < N; c++) {
            ret[N-c-1][r] = mat[r][c];
        }
    }
    return ret;
}