Как повернуть 3D-объект по оси three.js?

У меня есть большая проблема с поворотом в три.js Я хочу повернуть свой 3D-куб в одной из моих игр.

//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 [1...@shape.length]
    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

и (x, y, z) может быть (1, 0, 0)

тогда куб может вращаться, но проблема в том, что куб вращается вокруг своей оси, поэтому после того, как он повернулся, он не может т вращаться, как ожидалось.

Я нахожу страницу Как повернуть вектор Three.js Vector3 вокруг оси?, но он просто позволяет точке Vector3 вращаться вокруг мировой оси?

и я пытался использовать matrixRotationWorldкак

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

, но это не работает, я не знаю, использовал ли я его неправильно или есть другие способы..

так , как сделать так, чтобы 3D куб вращался вокруг мировой оси???

34
задан Community 23 May 2017 в 12:18
поделиться