javascript - Three.js 如何获取一个对象相对于另一个对象的旋转?

标签 javascript three.js

我有一个相机和一个盒子。我想要让相机旋转,就好像它是盒子的子元素一样,而不是真正为相机设置父子关系。

THREE.js 有 object.worldToLocal(position) ,它将正确获取相机相对于盒子的位置,但该函数当然不适用于欧拉旋转,所以我正在寻找欧拉或四元数旋转的等效函数。

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

谢谢!

最佳答案

好的,我想我明白了!

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

关于javascript - Three.js 如何获取一个对象相对于另一个对象的旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47917597/

相关文章:

javascript - IE 显示两个 div 而不是一个

javascript - 触发复选框选择

javascript - "a,b,c".split (",") 比 ["a","b","c"] 有什么优势?

javascript - 如何为 SVG 中的虚线设置动画(使用 HTML、CSS 和/或 JavaScript)

javascript - 在 ThreeJS 中使用新的 PlaneBufferGeometry 访问顶点

javascript - 将 THREE.ParametricGeometry 调整为边界框尺寸

image - Three.js 纹理/图像在运行时更新

javascript - HTML Popup Div 到任何屏幕分辨率的屏幕中心

javascript - 如何移动将沿着弯曲路径行驶的汽车

three.js - 三人组 : add hole to rendered Shape