我大约两周前开始学习Java,所以请不要犹豫。
我正在使用二维数组(图片)执行此程序,我想将其旋转90度(已经完成,经过测试,可以正常工作)和180度。我的方法无效,我想使用90度旋转在180度中两次(组成?),但不起作用。

这是我的90方法:

public void rotate90(){
        for (int r = 0; r < w; r++) {
             for (int c = 0; c < h; c++) {
                 imageMatrix[c][w-r-1] = imageMatrix[r][c];
             }
        }

public void rotate180(){
        rotate90(rotate90()); // my idea was to rotate again the already rotated matrix, but since rotate90 is void it doesn't work
}


有办法吗?具有空函数?

提前致谢!

最佳答案

方法rotate90()对此没有参数。其实这不是正确的方法。

第一种方法是将其写出来。

rotate90();
rotate90();


或使用for-cycle

for (int i=0; i<2; i++) {
    rotate90();
}




但是,这是一种仅用一种方法即可将其旋转多少次的方法:

public void rotate90(int n) {
    for (int i=0; i<n; i++) {
        for (int r=0; r<w; r++) {
            for (int c=0; c<h; c++) {
                imageMatrix[c][w-r-1] = imageMatrix[r][c];
            }
        }
    }


然后rotate180()方法:

public void rotate180(){
    rotate90(2); // rotate by 90 two times
}

07-24 13:43