我有一个与3D空间中的点旋转有关的问题。
假设我有一个带X,Y和Z坐标的点。
现在我想通过以下三种方式之一指定旋转来旋转它:
我在here找到了良好的链接,但它没有解决第3点。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:8)
所有旋转都将围绕原点进行。所以你转换为原点,旋转,然后翻译回来。
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
如果要旋转多个点,则将矩阵相乘:
A = (T^-1)*R*T
X_rotated = A*X