Поворот изображения на любой угол, как правильно закодить алгоритм?
Нужно написать программу, которая поворачивает изображение на любой угол. Делаю ее на python, с библиотекой pillow все просто, но как оказалось нужно весь алгоритм самому описывать, а не юзать встроенные функции.
Вам нужно считать каждый пиксель квадратом. Координаты пикселя считать уже не целыми, а вещественными. Через матрицу поворота можно вычислить новые координаты из старых и наоборот. А дальше - цвет каждого нового пикселя будет получаться смешением цветов нескольких соседних пикселей, пропорционально площадям, на которые делится квадрат нового пикселя. На примере смешиваются цвета 5 старых пикселей (пятый кусочек такой маленький, что пришлось показать стрелкой). По какой формуле смешивать цвета - это отдельный вопрос, и не такой простой, как может показаться. Но для начала можете реализовать самый простой вариант, когда берётся среднее взвешенное по RGB-компонентам цвета. Думаю, цвета получатся не совсем правильные (там большая теория про цвета). Надо хоть с чего-то начать.