Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rotation 是否基于Three.js中的父对象/其他对象坐标系保持对象旋转?_Rotation_Coordinates_Three.js_Transform_Webgl - Fatal编程技术网

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

Rotation 是否基于Three.js中的父对象/其他对象坐标系保持对象旋转?,rotation,coordinates,three.js,transform,webgl,Rotation,Coordinates,Three.js,Transform,Webgl,我试图保持子对象的旋转与添加到父对象(即摄影机)之前相同 我使用Three.js'worldToLocal来保持位置,但由于父对象的位置和旋转,旋转会发生变化 在之前和之后“拾取”: 请注意立方体如何保持位置(由于worldToLocal),但旋转会发生变化 编辑:我希望能够将立方体的初始旋转设置为与添加到父对象之前相同的旋转。在此之后,我希望孩子能像父母一样正常动作和旋转/平移。要从场景中删除孩子并将其添加到新的父母,同时保持孩子的世界位置和方向,请执行以下操作: parent.attach

我试图保持子对象的旋转与添加到父对象(即摄影机)之前相同

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

之前和之后“拾取”:

请注意立方体如何保持位置(由于
worldToLocal
),但旋转会发生变化


编辑:我希望能够将立方体的初始旋转设置为与添加到父对象之前相同的旋转。在此之后,我希望孩子能像父母一样正常动作和旋转/平移。

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

parent.attach( child );
注意:如果
父对象
摄影机
,则必须记住将摄影机添加到场景中:

scene.add( camera );
当前不要求摄影机是场景的一部分


three.js r.109

听起来像是要将子对象与其父对象一起移动/平移,而不是旋转它。我想您可以将Object3D子类化并覆盖一些函数,使其忽略旋转,但也可以使用“分组”但不嵌套的对象数组快速欺骗wither。添加或仅手动更新父对象的“子对象”位置,包括更新循环中的偏移量。不,我希望子对象与父对象一起平移和旋转。我只希望初始旋转和之前一样。就像你要拿起一件东西并开始携带一样。谢谢,这非常有效
worldToLocal
code让我感到困惑,我只需要将父对象的逆矩阵World应用于子对象。