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 ???