javascript - 使用 ThreeJS 进行世界旋转
问题描述
如何使用 THREEJ 旋转世界空间中的对象?
我无法完成这项工作,我做错了什么?
object.matrixAutoUpdate = false;
const matrix = object.matrixWorld.makeRotationFromQuaternion( worldQuaternion );
object.setRotationFromMatrix( matrix );
object.updateMatrix();
解决方案
您可以通过减去父旋转来获得最终的局部旋转。
const parentQuatInvert = object.parent.getWorldQuaternion(new Quaternion()).invert();
object.quaternion.multiplyQuaternions(worldQuaternion, parentQuat);
// update matrix etc.
如果父级为空,您可以直接设置四元数object.quaternion.copy(worldQuaternion)
推荐阅读
- ios - 无法从可选中获取“某些”字段
- javascript - Javascript 嵌套数组平均价格
- flutter - 使用 GetX 和 Firebase Auth 进行 Firebase Firestore 查询
- javascript - 如何在 React 钩子中附加到状态数组?
- git - 从 PR 分支出不同的分支
- pdftk - 使用 PDFtk pro 将多个 pdf 文件合并为一个文件名
- api - laravel-json-api 适配器没有调用
- tsql - TSQL如何在没有实际UNION命令的情况下产生UNION结果
- ios - 根据参数替换容器视图
- angularjs - 跨页停靠模式弹出窗口