hi john
John Eriksson(e)k dio:
Hi,
The rotate function in the transform module rotates an image about its
center. But what if I want to use another point?
Is there another solution than to modify the size of the image to change
its center point?
I think something like this should do what you are looking for.
from math import *
def rotPoint(point, axis, ang):
""" Orbit. calcs the new loc for a point that rotates a given num
of degrees around an axis point,
+clockwise, -anticlockwise -> tuple x,y
"""
x, y = point[0] - axis[0], point[1] - axis[1]
radius = sqrt(x*x + y*y) # get the distance between points
RAng = radians(ang) # convert ang to radians.
h = axis[0] + ( radius * cos(RAng) )
v = axis[1] + ( radius * sin(RAng) )
return h, v
myimage.center = rotPoint(myimage.center, (300,300), 45)
this line should rotate myimage.center around point (300,300) by 45 degrees
Best Regards
/John Eriksson