0
好的,所以我知道右下对角线的左上角很容易反射,您只需通过翻转坐标来转置数组。现在我有这个任务,希望我能够在对角线上反射一个图片对象。这很容易,我找出了大部分,但我得到一个错误,说我的坐标超出了界限。如何在左下角到右上角反射阵列?
for (int i=0; i<v.getWidth(); i++)
{
for (int j = 0; j < v.getHeight() - i; j++)
{
Pixel pixel = v.getPixel(i, j);
Pixel reflectPixel = v.getPixel(v.getWidth() - j,v.getHeight() - i);
int amountRed = pixel.getRed();
int amountBlue = pixel.getBlue();
int amountGreen = pixel.getGreen();
reflectPixel.setBlue(amountBlue);
reflectPixel.setRed(amountRed);
reflectPixel.setGreen(amountGreen);
}
}
现在我很确定我有我应该镜像的正确坐标,这是问题的循环之一。
我在想什么是第一个循环水平横跨阵列,而第二个循环垂直运行(与数组通常相反)。如果我将环路的垂直部分逐渐增加或者减少,我会有我不得不反思的路线。我通过从中减去变量i来做到这一点。
代码甚至不会编译,因为循环要求图片区域外的像素,或者reflectPixel变量设置为无效坐标。我无法弄清楚哪一个。
现在我不确定是应该删除还是保留它,因为我解决了自己的问题,但其他人也可以从中受益。 – Scerzy