2016-03-23 29 views
0

32 x 32 piksel dizisini çevirmek için kodum var, ancak yatay olarak nasıl çevireceğimi bilmiyorum.Bir piksel dizisini yatay olarak döndürme

İşte dikey çevirme kodu. 32 yana

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

genişliği ve yükseltir, (tüm bu yerlerin

+1

Bu çok garip. '(i/32) * 32 + (i% 32)' sadece “i” demenin gizemli bir yoludur. Soruyu daha ayrıntılı olarak açıklayabilir misiniz? –

cevap

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

kullanılan dizin (i/imageWidth) * imageWidth = i - (i % imageWidth) (satır ofseti) ile imageWidth - (i % imageWidth) - 1 toplamıdır gider merkezde yansıtılan x pozisyonu)