Javascript threejs如何旋转控件本身

Javascript threejs如何旋转控件本身,javascript,three.js,Javascript,Three.js,当附加到transformcontrol的对象为rotate时,我希望旋转transformcontrol本身 旋转前 轮换后 如图所示,旋转之前,圆柱体的顶部方向是transformcontrol的z轴,而旋转之后则不是 我希望transformcontrol的z轴始终位于圆柱体的向上方向。返回一个可以直接修改的对象 const controls=新的TransformControl(摄影机、渲染器.doElement); 控件。设置空间(“本地”); controls.rotation.

当附加到transformcontrol的对象为rotate时,我希望旋转transformcontrol本身

旋转前

轮换后

如图所示,旋转之前,圆柱体的顶部方向是transformcontrol的z轴,而旋转之后则不是

我希望transformcontrol的z轴始终位于圆柱体的向上方向。

返回一个可以直接修改的对象

const controls=新的TransformControl(摄影机、渲染器.doElement);
控件。设置空间(“本地”);
controls.rotation.x=Math.PI/-2;
如果要将其旋转与网格同步,可以将其添加为该网格的子对象或使用

mesh.add(控件);
//或者在渲染循环中手动执行,例如
添加(控件);
renderer.setAnimationLoop(()=>{
控件。旋转。复制(网格。旋转);
渲染器。渲染(场景、摄影机);
});

感谢您的评论。我试过了,你提到过,控制旋转得很好。然而,当我试图控制z轴平移时,附着的对象移动到全局z轴,而不是圆柱体顶部方向。我明白了。我们可以使用从局部坐标空间切换到
local
(默认为
world
)。