Wie drehe ich ein 3D-Objekt um Achse drei.js?

Ich habe ein großes Problem mit der Drehung in drei Sekunden. Ich möchte meinen 3D-Würfel in einem meiner Spiele drehen.

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

und (x, y, z) kann (1, 0, 0) sein

Dann kann sich der Würfel drehen, aber das Problem ist, dass sich der Würfel um seine eigene Achse dreht. Nachdem er gedreht wurde, kann er sich nicht mehr wie erwartet drehen.

Ich finde die SeiteWie dreht man einen Three.js Vector3 um eine Achse?, aber es lässt nur einen Vector3-Punkt um die Weltachse drehen?

und ich habe versucht zu verwendenmatrixRotationWorld wie

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

aber es funktioniert nicht, ich weiß nicht, ob ich es falsch verwendet habe oder ob es andere Möglichkeiten gibt.

Wie lässt sich der 3D-Würfel um die Weltachse drehen?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage