Javascript Three.js:全局旋转

Javascript Three.js:全局旋转,javascript,three.js,rotation,transform,Javascript,Three.js,Rotation,Transform,我希望沿x轴围绕原点0,0,0旋转场景中的所有对象。但是,设置obj.rotation.x+=0.1;不沿原点旋转,而是沿对象的中心旋转。如何实现对象围绕原点的所需旋转?我觉得应该有一个简单的方法,但在官方文件或网上找不到 不要将对象添加到场景中,而是将它们添加到THREE.Group()对象中: var group = new THREE.Group(); scene.add(group); ... var mesh1 = new THREE.Mesh(...); group.add(mesh

我希望沿x轴围绕原点0,0,0旋转场景中的所有对象。但是,设置obj.rotation.x+=0.1;不沿原点旋转,而是沿对象的中心旋转。如何实现对象围绕原点的所需旋转?我觉得应该有一个简单的方法,但在官方文件或网上找不到

不要将对象添加到场景中,而是将它们添加到
THREE.Group()
对象中:

var group = new THREE.Group();
scene.add(group);
...
var mesh1 = new THREE.Mesh(...);
group.add(mesh1);
var mesh2 = new THREE.Mesh(...);
group.add(mesh2);
//and so on with meshes
然后在渲染循环中:

group.rotation.x += 0.1;

Threejs.r84

您可以使用
THREE.Object3D()

使用
myObject.Add(myMesh)

然后使用myObject.rotateX(角度)
角度
以弧度为单位时,
myObject
是Object3D对象,
myMesh
是要添加的网格。
这将在局部空间中绕x轴旋转对象。

更多信息可以在文档中找到:

@prisonder849我这样做了,它成功了。感谢您的快速回复:)我将等待一段时间,然后再接受它作为答案。很好,感谢您的快速回复:)prisoner849提供的分组解决方案有什么区别?这两种方法对我来说都很相似。对于我来说,仅仅为了实现围绕原点的旋转而改变场景的结构似乎有些过分。所以我在寻找一个更简单的解决方案。仅从关注点分离的角度来看,场景中的对象重新组合是实现围绕原点旋转所必需的,这在我看来很奇怪。但是无论如何,这两种解决方案似乎都很好,所以谢谢:)@deusexmachina
THREE.Group()
THREE.Object3D()
)之间没有太大区别。它们说:这几乎与Object3D相同。它的目的是使处理对象组的语法更加清晰。@Deusecxmachina这两者之间没有区别,只是名称不同。我通常喜欢使用
Object3D
,因为我对这个名字感到很舒服(只是个人选择)。如果您想了解两者之间的差异,可以转到:。它导入
Object3D
,只需将其类型更改为“Group”。