Представьте себе картину (ссылка на изображения
находятся в верхнем левом углу, на картинке, которую я загрузил, это около 0,0 угла).
С разными библиотеками легко вращать изображение.
Теперь, связанный с изображением, у вас есть конкретная точка, для которой вы должны пересчитать ее координаты относительно поворота, которое вы применили к изображению.
Итак, допустим, ваше изображение квадратное, и вы применяете поворот на 90 градусов по часовой стрелке. Ваша точка изначально имеет координаты x = 4, y = 1 и после
Вращение должно иметь 3,4.
Правильн ли следующий код для пересчета координат такой точки (или любой другой точки?)?
Я сильно сомневаюсь в условиях «если». Интересно, должен ли я применить еще одну операцию, которая включает по модулю.
import numpy as np
def rot(x,y, ang):
xn=np.cos(ang)*x + np.sin(ang)*y
yn=-np.sin(ang)*x + np.cos(ang)*y
return [xn,yn]
x=4
y=1
mpx=4 # width of the image
mpy=4 # height of the image
# 3 rotations of 90 degrees
a=np.arange(2.0*np.pi, 0, -np.pi/2.0)
print(a)
for i in a:
xn,yn=rot(x,y,i)
if(xn<0):
xn+=mpx
if(yn<0):
yn+=mpy
print("%f %f" %(xn,yn))