假设有一个标准垂直参考:X[1,0,0], Y[0,1,0], Z[0,0,1]
我希望旋转矩阵将其旋转以匹配另一个垂直参考X'[a1,b1,c1], Y'[a2,b2,c2], Z'[a3,b3,c3]
。向量是单位向量。
矩阵是否可能如下所示?
a1, a2, a3
b1, b2, b3
c1, c2, c3
答案 0 :(得分:3)
给定XYZ
坐标系中定义的点,将它们转换为X'Y'Z
坐标系,其中3x3
旋转矩阵。通常,在世界坐标中的列中排列的本地a
,b
和c
轴的组件代表该系统的local->world
转换,以便
| x_world | | a1 b1 c1 | | x_local |
| y_world | = | a2 b2 c2 | | y_local |
| z_world | | a3 b3 c3 | | z_local |
和反向转换(使用matrix transpose)
| x_local | | a1 a2 a3 | | x_world |
| y_local | = | b1 b2 b3 | | y_world |
| z_local | | c1 c2 c3 | | z_world |
现在要在local->world
个旋转矩阵XYZ
和X'Y'Z'
的任意两个坐标系之间进行转换(在您的情况下注意XYZ
是3x3单位矩阵)对
point_x'y'z' = transpose(X'Y'Z') * (XYZ) * point_xyz
| x' | | a1 b1 c1 | | x | | a1 x + b1 y + c1 z |
| y' | = | a2 b2 c2 | | y | = | a2 x + b2 y + c2 z |
| z' | | a3 b3 c3 | | z | | a3 x + b3 y + c3 z |
答案 1 :(得分:2)
是的,从身份到任何其他变换的转换是另一个变换。通常你不会将这些东西称为旋转矩阵,因为它们代表任意的变换。可能单独通过旋转可能无法实现变换,因为变换可以围绕一个或两个平面进行镜像。
请注意,在使用列向量时,完全可以使用行向量,在这种情况下,您的结果只是转置,而乘法顺序相反。在数学上它是同样的事情。所以检查你的系统