Three.js如何让对象相对于另一个旋转?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Three.js如何让对象相对于另一个旋转?相关的知识,希望对你有一定的参考价值。

我有一个相机和一个盒子。我想让相机的旋转就好像它是盒子的孩子一样,而不是实际为相机做父母。

THREE.js有object.worldToLocal(position),它可以正确地获取相机相对于盒子的位置,但是这个函数当然不适用于euler旋转,所以我正在寻找euler或四元数旋转的等价物。

Unity有transform.InverseTransformDirection(vector),我正在寻找类似的东西。

谢谢!

答案

好的,我想我明白了!

  var rot = camera.getWorldQuaternion();
  rot.multiply(box.getWorldQuaternion().inverse());
  var euler = new THREE.Euler().setFromQuaternion(rot);

以上是关于Three.js如何让对象相对于另一个旋转?的主要内容,如果未能解决你的问题,请参考以下文章

three.js如何让场景中模型跟随鼠标旋转呀

Three.js - 计算相对旋转

Three.js在函数中平滑旋转一个对象

如何在轴 three.js 上旋转 3D 对象?

如何在three.js中围绕对象的中心旋转?

如何在旋转场景中查找对象的全局位置 THREE.JS