Hi, Rotating creates a new surface, with the original surface drawn at an angle inside it. This means that the original surface is bigger, shifting the middle away.
Compensating runs something as follows: xdel = int(round( orig_surf_width * sin(radians(rotation_amount)) )) ydel = int(round( orig_surf_height * cos(radians(rotation_amount)) )) And then drawing the new surface at (xcoord-xdel,ycoord-ydel). Ian