首页 > 解决方案 > 使用 ThreeJS 进行世界旋转

问题描述

如何使用 THREEJ 旋转世界空间中的对象?
我无法完成这项工作,我做错了什么?

object.matrixAutoUpdate = false;
const matrix = object.matrixWorld.makeRotationFromQuaternion( worldQuaternion );
object.setRotationFromMatrix( matrix );
object.updateMatrix();

标签: javascriptthree.js

解决方案


您可以通过减去父旋转来获得最终的局部旋转。

const parentQuatInvert = object.parent.getWorldQuaternion(new Quaternion()).invert();
object.quaternion.multiplyQuaternions(worldQuaternion, parentQuat);
// update matrix etc.

如果父级为空,您可以直接设置四元数object.quaternion.copy(worldQuaternion)


推荐阅读