Como girar um objeto 3D no eixo three.js?

Eu tenho um grande problema sobre a rotação em three.js eu quero girar meu cubo 3D em um dos meus jogos.

//init
geometry = new THREE.CubeGeometry grid, grid, grid
material = new THREE.MeshLambertMaterial {color:0xFFFFFF * Math.random(), shading:THREE.FlatShading, overdraw:true, transparent: true, opacity:0.8}
for i in [[email protected]]
    othergeo = new THREE.Mesh new THREE.CubeGeometry(grid, grid, grid)
    othergeo.position.x = grid * @shape[i][0]
    othergeo.position.y = grid * @shape[i][1]
    THREE.GeometryUtils.merge geometry, othergeo
@mesh = new THREE.Mesh geometry, material

//rotate
@mesh.rotation.y += y * Math.PI / 180
@mesh.rotation.x += x * Math.PI / 180
@mesh.rotation.z += z * Math.PI / 180

e (x, y, z) pode ser (1, 0, 0)

então o cubo pode girar, mas o problema é o cubo girar em seu próprio eixo, portanto, depois de girar, ele não pode girar como esperado.

Eu acho a páginaComo girar um vetor Three.js em torno de um eixo?, mas apenas deixe um ponto Vector3 girar em torno do eixo do mundo?

e eu tentei usarmatrixRotationWorld Como

@mesh.matrixRotationWorld.x += x * Math.PI / 180
@mesh.matrixRotationWorld.y += y * Math.PI / 180
@mesh.matrixRotationWorld.z += z * Math.PI / 180

mas não funciona, não sei se usei de forma errada ou se existem outras formas.

Então, como deixar o cubo 3D girar em torno do eixo do mundo ???

questionAnswers(9)

yourAnswerToTheQuestion