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



Reply via email to