2

是否有直接的方法可以从以下输入构造旋转矩阵?

假设有一个标准的垂直参考: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
4

2 回答 2

3

给定XYZ坐标系中定义的点,您可以将它们转换为具有旋转矩阵的X'Y'Z坐标系。通常,在世界坐标中按列排列3x3的局部ab和轴的分量表示该系统的变换,使得clocal->world

| x_world |   | a1 b1 c1 | | x_local |
| y_world | = | a2 b2 c2 | | y_local |
| z_world |   | a3 b3 c3 | | z_local |

和逆变换(使用矩阵转置

| 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 |
于 2013-10-27T18:09:53.450 回答
2

是的,从身份到任何其他转换的转换是另一个转换。通常您不会将这些东西称为旋转矩阵,因为它们代表任意变换。可能仅通过旋转可能无法实现转换,因为转换可能围绕一个或两个平面进行镜像。

请注意,当您使用列向量时,也完全可以使用行向量,在这种情况下,您的结果只是转置,并且乘法顺序相反。数学上是一样的。所以检查你的系统

于 2013-10-27T17:44:44.040 回答