You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scipy中四元数转矩阵as_matrix函数的实现依据与来源问询

Scipy四元数转旋转矩阵实现的差异与依据

核心差异:四元数的约定不一样

Scipy的as_matrix和维基百科里的常规实现差异,本质是四元数的存储顺序和旋转方向规则不同:

  • 多数资料(包括维基百科)默认四元数是(w, x, y, z)顺序,w是实部,x/y/z是虚部,且采用主动旋转规则——坐标系不动,物体绕轴旋转。
  • Scipy的Rotation类采用(x, y, z, w)顺序(虚部在前,实部在后),还默认是被动旋转规则——物体不动,坐标系绕轴旋转。这两个约定的组合,直接导致旋转矩阵的计算式和常规版本产生差异。

实现的理论依据

Scipy的实现完全基于四元数与旋转矩阵的标准数学映射,只是适配了自身的约定:

  • 假设四元数为q = x*i + y*j + z*k + w(Scipy的存储顺序),旋转后的向量满足v' = q*v*q^{-1},将这个向量变换公式展开为矩阵形式,就是代码里的计算逻辑。
  • 被动旋转对应的矩阵与主动旋转矩阵互为转置,这也是两者实现差异的重要来源之一。

未标注参考的可能原因

  • 四元数转旋转矩阵的推导是刚体力学、计算机图形学领域的通用常识,属于行业内广泛共识的基础理论,无需额外标注特定来源。
  • 该部分是底层Cython实现的核心逻辑,Scipy的代码贡献者默认使用者熟悉四元数与旋转矩阵的基本转换原理,因此没有单独添加参考链接。
  • 开源项目中,对于这类无争议的基础数学实现,通常不会重复标注通用参考资料,只有引入非常规创新方法时才会补充标注。

内容的提问来源于stack exchange,提问作者Anon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 18:52:09