更改坐标系统空间

时间:2016-12-06 11:10:36

标签: math matrix

我有一个可能很明显的问题,但我在解决它时遇到了问题...

我有2个坐标系。让我们说吧 Oxyz具有x(1,0,0),y(0,1,0)和z(0,0,1)和O(0,0,0)。并且Px'y'z'与P和x'y'z'已知。

我的目标是创建旋转矩阵,允许我从Oxyz传递到Px'y'z'。

我做的是: 计算向量Ox和Px'之间的Xangle(使用公式: char *。并使用theta创建XMatrix:

Theta = cos( Ox . Px' / ||Ox|| * ||Px'|| ) )

我对Yangle和Zangle完全相同,然后创建2对应的Matrix。 毕竟,我创建了MFinal = XMatrix * YMatrix * ZMatrix。

是不是?它可以在任何世界中使用吗?

谢谢大家! :)

祝你好运

1 个答案:

答案 0 :(得分:1)

您的方法不起作用,因为您没有测量与轴正交的平面中的角度。与旋转轴平行的差矢量分量不会因旋转而改变。

无论如何,有一种更简单的方法。假设旋转矩阵是R。然后,您希望将原始x轴映射到新的x轴:

x' = R x = R (1, 0, 0)^T

由于基本坐标系是规范系统,因此最后一个表达式的计算结果为R的第一列,您得到:

x' = R[0]

这很容易解决。

所以你需要做的就是将局部轴作为列向量放入R。如果要包含翻译,只需对本地原点和第四列进行相同的操作。