Если все, что вам нужно, поверните изображение на 180 градусов, я думаю, вы можете использовать простой цикл на половине изображения и поменять местами в каждой итерации позицию на 1 пару пикселей.
Давайте посмотрим на пиксель в положении(i,j)
- где он должен быть после поворота?потому что это 180, он должен быть на (WIDTH - i, HEIGHT -j)
, поэтому ваш rotatedImage
должен выглядеть следующим образом:
void rotatedImage (unsigned PixelGrid[WIDTH][HEIGHT])
{
int row;
int col;
for (row = 0; row < WIDTH/2; row++)// because you only have to loop on half the image
{
for (col = 0; col < HEIGHT; col++)
{
unsigned temp = PixelGrid[row][col];
PixelGrid[row][col] = PixelGrid[WIDTH - row][HEIGHT - col];
PixelGrid[WIDTH - row][HEIGHT - col] = temp;
}
}
}
Я не c++
эксперт, поэтому я надеюсь, что у меня нет синтаксической ошибки, и я никогда не проверяю, чтотак что остерегайтесь массива из индекса, я могу пропустить