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

如何应用欧拉角实现三维向量绕指定点旋转

三维点B绕点A按给定欧拉角旋转的计算方法

核心逻辑

绕非原点的点做旋转,本质是平移到原点→做旋转→平移回原坐标系的三步操作,具体实现如下:


具体步骤

  1. 平移变换:将旋转中心A设为原点
    先计算点B相对于点A的局部向量,消去A的位置偏移:

    V = B - A
    

    其中V是3维列向量,每个分量对应B和A对应坐标的差值。

  2. 应用旋转矩阵
    首先确认你生成的3×3旋转矩阵R和手里的欧拉角规则匹配:

    • 欧拉角的旋转顺序(如ZYX/XYZ等)、内外旋定义要和生成旋转矩阵的规则完全一致,这是三维旋转计算出错的最高频原因
    • 如果你用列向量存储坐标,直接左乘旋转矩阵即可:
      V_rot = R · V
      
    • 如果你用行向量存储坐标,需要右乘旋转矩阵的转置:
      V_rot = V · R^T
      

    得到旋转后的局部向量V_rot。

  3. 平移回原全局坐标系
    把旋转后的局部向量加回旋转中心A的坐标,得到最终的旋转后位置:

    B_rot = V_rot + A
    

简单验证示例

我们用简化的场景验证逻辑正确性:

  • 已知A=(1,1,0),B=(2,1,0),欧拉角为绕Z轴旋转90°,对应旋转矩阵:
    R = [[0, -1, 0],
         [1,  0, 0],
         [0,  0, 1]]
    
  • 第一步计算局部向量:V = (2-1, 1-1, 0) = (1, 0, 0)
  • 第二步应用旋转矩阵:V_rot = R·V = (0, 1, 0)
  • 第三步平移得到结果:B_rot = (0+1, 1+1, 0) = (1, 2, 0),和直观预期的旋转结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:12:03