Three.js旋转后获取对象在对象空间中的位置

时间:2019-08-04 00:51:25

标签: javascript three.js

我想沿“ x”轴移动对象,将其旋转90度,然后再次沿“ x”轴(现在为“ z”全局轴)移动。然后,此运动的路径应成直角。这是我移动对象的代码:

if(Math.abs(myObject.position.x - newX) > 0.01){
  myObject.translateX(0.1);
}

但是,问题是对象沿正确的方向(沿“ x”轴)移动,但是值myObject.position.x不变。相反,它的“ z”位置正在变化。基于此,我可以说myObject.position返回它的世界位置,而不是相对于对象空间的世界位置。我一直在尝试localToWorldworldToLocal方法,但到目前为止还没有运气。旋转后如何确保其向正确的方向移动?

编辑: 我已将group添加到我的代码中,如下所示:

group = new THREE.Group();
group .add(myObject);
scene.add(group);

我的移动功能如下:

if(Math.abs(group.position.x - newX) > 0.01){
   group.translateX(0.1);
}

旋转功能:

if(Math.abs(myObject.rotation.y - newRot) > 0.02){
   myObject.rotateY(0.02);
}

0 个答案:

没有答案