由原始坐标轴和新坐标轴之间的角度定义的 3d 旋转

问题描述

以前也有人问过这种类型的问题,但一直没有找到满意的解释。也许我只是有点慢...

假设我有一个由 X、Y 和 Z 表示的全局右手坐标系。然后说我有一个旋转的立方体,它的下、左、后角定义了新右手坐标系的原点,并且其与原点相连的边定义 X'、Y' 和 Z' 轴。接下来,我们将 X 和 X' 之间的夹角定义为 alpha,Y 和 Y' 之间的夹角定义为 beta,Z 和 Z' 之间的夹角定义为 gamma。

我希望能够使用旋转矩阵和角度 alpha、beta 和 gamma 在 X、Y 和 Z 全局坐标系中定义旋转立方体的坐标。这些旋转矩阵由下式给出:

Rx = [[1,0],[0,cos(alpha),-sin(alpha)],sin(alpha),cos(alpha)]]

Ry = [[cos(beta),sin(beta)],1,[-sin(beta),cos(beta)]]

Rz = [[cos(gamma),-sin(gamma),[sin(gamma),cos(gamma),1]]

例如,R3 中向量 X 绕 z 轴的旋转通过以下方式得到一个新向量 x:

x = Rz * X

这些旋转矩阵工作得很好,当三个旋转角度中的两个为零时,矩阵乘法的顺序无关紧要,例如当 alpha≠0 且 beta=gamma=0 或 beta≠0 且 alpha=gamma=0 或 gamma≠0 且 alpha=beta=0 时。这是因为当特定旋转矩阵的旋转角度等于 0 时,旋转矩阵就变成了单位矩阵。

当多个旋转角度不为零时,这些矩阵的顺序很重要。我的理解是对于以下轮换:

x = Rz * Ry * Rx * X

表示绕 x 轴旋转,然后绕新的 y 轴旋转,然后绕新的新 z 轴旋转。

这些旋转的顺序是否符合我的要求?或者为了这样做的关系?总之,我希望一种关系能够仅根据 X' 和 X、Y' 和 Y 以及 Z' 和 Z 之间的角度来旋转这些。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...