Python:旋转矩阵到角度

标签 python math matrix geometry

给定一个旋转矩阵

     | r00  r01  r02 |
 R = | r10  r11  r12 |
     | r20  r21  r22 |

和特定的旋转序列“abc”,其中 a、b、c 取自“XYZ”。 Python 中是否有一个通用解决方案(对于任意旋转序列)可将旋转矩阵转换为绕 X、Y 和 Z 轴的旋转角度?

最佳答案

似乎每个旋转序列都有其单独的解决方案。给定一个 序列“ZYX”旋转的结果符号表达式 矩阵是

       |      Cy Cz              -Cy Sz             Sy  |
Rxyz = │  Sx Sy Cz + Cx Sz   -Sx Sy Sz + Cx Cz   -Sx Cy │
       | -Cx Sy Cz + Sx Sz    Cx Sy Sz + Sx Cz    Cx Cy |

CS表示余弦和正弦。 xyz 索引注释 绕 x、y 和 z 轴的旋转。由此,得到一组方程 可以推导出来,即:

           Cy Cz = r00
         - Cy Sz = r01
         - Sx Cy = r02
Sx Sy Cz + Cx Sz = r10
      ...

需要解决至少一个角度表达式 每个轴。然后,应用“arcsin”或“arccos”来获得真实的 角度。似乎需要执行符号数学 每个序列分开。

关于Python:旋转矩阵到角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45696408/

相关文章:

python - 比较两个点元组列表的更快方法?

python - 迭代由数组组成的行的 pandas 数据帧并根据条件计算移动平均值

python - 如何在使用 pytest 和命令行选项时跳过 unittest 案例中的设置和拆卸?

python - 在 Python : how do I say: if line. 分区 ('#' 或 'tab' ) ... 做点什么

matlab - 避免在 MATLAB 中矩阵之间被零除

Java 对角矩阵

algorithm - 这里使用了哪种排序算法?

javascript - 从 Web Audio API EQ 的像素值获取频率

c# - 如何使用两个不同的数字生成唯一 key ,然后使用这些数字之一检索此 key

algorithm - 我怎样才能找到所有连续的子矩阵?