我大约两周前开始学习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
}