Помимо геометрии тебе пригодится курс линейной алгебры
https://www.youtube.com/playlist?list=PLZHQObOWTQD...
Это только один пример, а ведь есть еще и rotate, для которого нужно еще изменять skew, trasnlate....
Все это делается перемножением матриц трансформации, т.е. берутся матрицы: перемещения, вращения, масштабирования и т.д. (translateMatrix, rotateMatrix, scaleMatrix) перемножаются:
transformMatrix = translateMatrix * rotateMatrix * scaleMatrix
и итоговая transformMatrix уже используется в setTransform()
p.s. у канваса есть простые методы для трансформации:
rotate,
translate и т.д. с помощью которых всё это можно сделать менее заморочено.