2013-11-26 242 views
0

我寫了一個順時針旋轉2D矩陣的方法。旋轉矩陣CCW

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。

+0

究竟這是否旋轉矩陣? – Maggie

回答

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; 
}