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