Программное вращение изображений

Данная статья посвящена методике поворачивания изображений на заданный программистом угол. Решение этой задачи не так тривиально, как может показаться на первый взгляд.

Особенно если учитывать тот факт, что пиксель (наименьшая составляющая изображения) на самом деле не является точкой. Если быть точным, то это квадрат со сторонами 1х1. Исходя из этого можно сформулировать алгоритм, с помощью которого и можно реализовать вращение.

Представим, что изображение - это матрица пикселей. Тогда при вращении изображения происходит наложение исходной матрицы и повернутой на заданный угол. А поскольку единичный пиксель может быть только одного определенного цвета, то необходимо правильно распределить эти самые цвета.

Далее, чтобы хоть как-то разбавить "сухую" теорию, представлена ее графическая интерпретация. На левом рисунке представлено исходное изображение. На среднем рисунке видно, как происходит пересечение матриц исходного и повернутого изображений. Справа виден конечный результат работы алгоритма - происходит пропорциональное распределение цветов по ячейкам пиксельной матрицы.

Но в каждой бочке меда, как говорится, непременно найдется ложка дегтя. Данный алгоритм работает довольно медленно, поэтому и не годится для использования в такой сфере как программирование компьютерных игр.