2016-03-23 19 views
0

Ich habe den Code, um eine 32 x 32 Pixel-Array zu kippen, aber ich habe keine Ahnung, wie man es horizontal spiegeln.Flip ein Pixel-Array horizontal

Hier ist der Code für vertikale Flip.

for (int i = 0; i < pixels.length; i++) { 
     newPixels[(i/32) * 32 
       + (i % 32)] = pixels[(32 - (i/32) - 1) * Grid.SIZE + (i % 32)]; 
} 

Seit 32 ist die Breite und Höhe, geht es in allen diesen Orten

+1

Das ist sehr merkwürdig. '(i/32) * 32 + (i% 32)' ist nur eine verschleierte Art, 'i' zu sagen. Können Sie die Frage näher erläutern? –

Antwort

1
int imageWidth = 32; 
for (int i = 0; i < pixels.length; i++) { 
    newPixels[i] = pixels[i - 2 * (i % imageWidth) + imageWidth - 1]; 
} 

Der verwendete Index ist die Summe der (i/imageWidth) * imageWidth = i - (i % imageWidth) (die für den Zeilenoffset) und imageWidth - (i % imageWidth) - 1 (die x-Position in der Mitte gespiegelt)