У вас есть какое-то изображение, которое живет в мировых координатах, и вы применяете к нему аффинное преобразование (композиция вращений, переводов и масштабирования), чтобы получить то, как оно выглядит на экране:
Мир ------- [аффинное преобразование] -------> Экран
Теперь, если вы хотите отобразить что-то, находящееся в координатах экрана (например, положение курсора мыши), в мировые координаты, вам нужно использовать обратное этого аффинного преобразования.
Если ваше преобразование является просто вращением, как в вашем фрагменте кода, отрицательное значение rotation
поможет.
Как правило, вы хотите представить свое преобразование и его инверсию в виде матриц 3x3 A и A ^ -1. Если W и S - аффинные координаты мира и экрана, у вас есть
S = AW и W = A ^ 1 S.
Чтобы добавить еще одно преобразование T в A, умножьте A слева на T и A ^ -1 справа на T ^ -1:
A = TA
A^-1 = A^-1 T^-1