基于Three.js中的父/其他对象坐标系保持对象旋转?

时间:2013-03-03 01:10:10

标签: rotation coordinates three.js transform webgl

我正在尝试保持子对象的旋转与添加到父对象(即相机)之前的旋转相同。

我正在使用Three.js'worldToLocal来保持位置,但由于父级的位置和旋转,旋转会发生变化。

之前之后“拿起”:
Screenshot of the cube before pickup. Screenshot of the cube after pickup, position is the same but rotation changed.

注意多维数据集如何保持位置(感谢worldToLocal)但旋转发生了变化。

编辑:我希望能够将多维数据集的初始旋转设置为与添加到父级之前相同。之后,我希望孩子正常行动并像父母一样旋转/翻译。

1 个答案:

答案 0 :(得分:5)

要从场景中移除子项并将其添加到新父级,同时保持其世界位置和方向,请执行以下操作:

THREE.SceneUtils.attach( child, scene, parent );

根据我对你想做什么的理解,我相信这是票。

注意:如果parentcamera,则必须记住将相机添加到场景中:

scene.add( camera );

目前并不要求相机是场景的一部分。

要使用此方法,必须将文件/examples/js/utils/SceneUtils.js添加到您的项目中。

three.js r.96