【发布时间】:2013-10-24 06:07:06
【问题描述】:
这是我目前所拥有的:
public static Photograph rotated(Photograph photo) {
Photograph rotated_copy = new Photograph(photo.getHeight(), photo.getWidth());
Pixel starting_pixel = photo.getPixel(0,0);
for(int col = 0; col < photo.getWidth(); col++){
for(int row = 0; row < photo.getHeight(); row++){
starting_pixel = photo.getPixel(col,row);
rotated_copy.setPixel(row, col, starting_pixel);
}
}
return rotated_copy;
}
但是,此方法会将拍摄的任何照片逆时针旋转 90 度。我该如何解决这个问题?
【问题讨论】:
-
90* 逆时针 = x* 顺时针。找到 x 并重新考虑方法。
-
您的代码没有旋转图像;它正在翻转图像(沿 x=y 的线镜像图像)。
-
Big Al 错了,您的代码确实在旋转。你已经测试过了,对吧?问题是逆时针?那你为什么要听他说它翻转?
-
@Zaphod42 不,它没有旋转。
[0][0]处的元素始终保持不变,[rowscount][colscount]处的元素也是如此。看看this IDEOne example with a simple int array -
是的,它实际上是在两个轴上镜像图像,这使它看起来几乎像它在旋转,但事实并非如此。我修改了我的答案,为他指明了正确的方向。