所有旋转都将围绕原点进行.所以你转换为原点,旋转,然后翻译回来.
T = translate from global coordinates to user-coordinates
R = rotate around the origin (like in your link)
(T^-1) = translate back
point X
X_rotated = (T^-1)*R*T*X
Run Code Online (Sandbox Code Playgroud)
如果你有多个旋转点,那么将矩阵相乘:
A = (T^-1)*R*T
X_rotated = A*X
Run Code Online (Sandbox Code Playgroud)