Jak obrócić obiekt 3D na osi three.js?

Mam wielki problem z rotacją w three.js Chcę obrócić moją kostkę 3D w jednej z moich gier.

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

a (x, y, z) może być (1, 0, 0)

następnie sześcian może się obracać, ale problem polega na tym, że sześcian obraca się wokół własnej osi, więc po obróceniu nie może się obracać zgodnie z oczekiwaniami.

Znajduję stronęJak obracać Vector.js3 wokół osi?, ale po prostu niech punkt Vector3 obraca się wokół osi świata?

i próbowałem użyćmatrixRotationWorld tak jak

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

ale to nie działa, nie wiem, czy użyłem tego w niewłaściwy sposób, czy są inne sposoby ..

jak więc pozwolić, aby sześcian 3D obracał się wokół osi świata?

questionAnswers(9)

yourAnswerToTheQuestion