Для поворота изображения через определенный источник используйте
x2 = cos(angle)*(x1 - x0) -sin(angle)*(y1 - y0) + x0
y2 = sin(angle)*(x1 - x0) + cos(angle)*(y1 - y0) + y0
Где (x0, y0) - нужный вам источник.
Чтобы сделать это проще, просто используйте матричную запись
[x2 [cos -sin x0 [x1 - x0
y2 = sin cos y0 y1 - y0
1] 0 0 1] 1 ]