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

将欧拉角转换为四元数时调整XYZ旋转顺序的技术咨询

弧度制XYZ欧拉角转四元数实现

嘿,分享一个我常用的将弧度制XYZ欧拉角转换为四元数的代码实现,直接就能用:

// 输入:x, y, z 为弧度制的欧拉角(分别对应绕X、Y、Z轴的旋转角度)
function eulerToQuaternion(x, y, z) {
  const c1 = Math.cos(x / 2);
  const c2 = Math.cos(y / 2);
  const c3 = Math.cos(z / 2);
  const s1 = Math.sin(x / 2);
  const s2 = Math.sin(y / 2);
  const s3 = Math.sin(z / 2);

  // 返回的四元数格式为 [w, x, y, z]
  return [
    c1 * c2 * c3 - s1 * s2 * s3,
    s1 * c2 * c3 + c1 * s2 * s3,
    c1 * s2 * c3 - s1 * c2 * s3,
    c1 * c2 * s3 + s1 * s2 * c3,
  ];
}

需要注意的是,这个代码生成的四元数遵循X-Y-Z内旋旋转顺序——也就是先执行绕X轴的旋转,接着绕Y轴,最后绕Z轴。如果你的项目需要其他旋转顺序(比如外旋或者不同轴的排列),就得调整公式里正弦和余弦项的组合方式啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:33:59