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

如何匹配另一物体的旋转增量 四元数旋转方向反向问题如何修复

旋转方向反向问题修复方案

问题根源

当前代码的四元数运算顺序错误,计算得到的是A从当前状态回到初始状态的反向旋转增量,因此物体B的旋转方向会和A相反。

修复方法

调整四元数的计算顺序,先计算A从初始姿态到当前姿态的正向旋转增量,再将该增量叠加到B的初始旋转上即可,修复后的代码如下:

// 计算A从初始旋转到当前旋转的正向增量
Quaternion rotationDelta = objectA.transform.localRotation * Quaternion.Inverse(initialObjectARotation);
// 将增量叠加到B的初始旋转上,得到B当前应有的旋转
objectB.transform.localRotation = rotationDelta * initialObjectBRotation;

如果需要合并为一行写法,可直接使用如下代码:

objectB.transform.localRotation = (objectA.transform.localRotation * Quaternion.Inverse(initialObjectARotation)) * initialObjectBRotation;

补充说明

如果同步需求是基于世界坐标系的旋转而非局部坐标系,把代码中的localRotation替换为rotation即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:06:07