Objekt um die Weltachse drehen

Ich versuche ein Objekt um die Weltachse zu drehen. Ich habe diese Frage gefunden:Wie rotiere ich ein Objekt um die Achse world three.js?

Mit dieser Funktion konnte das Problem jedoch nicht gelöst werden:

var rotWorldMatrix;

// Rotate an object around an arbitrary axis in world space       
function rotateAroundWorldAxis(object, axis, radians) {
    rotWorldMatrix = new THREE.Matrix4();
    rotWorldMatrix.makeRotationAxis(axis.normalize(), radians);
    rotWorldMatrix.multiplySelf(object.matrix);        // pre-multiply
    object.matrix = rotWorldMatrix;
    object.rotation.getRotationFromMatrix(object.matrix, object.scale);
}

multiplySelf undgetRotationFromMatrix sind nicht definiert (ich erhalte einen Konsolenfehler). Wie kann das Problem behoben werden?

Aktualisieren

Ich habe versucht zu verwendenQuaternion, aber es scheint sich nicht richtig zu verhalten. Ich versuche, ein Objekt entsprechend dem Klick des Benutzers zu drehen. Dies ist die Funktion, die ich geschrieben habe:

function mouseUp(event) {
    var x= event.clientX;
    var y= event.clientY;
    var dx= (x - xBegin);
    var dy= (y - yBegin);

    var quaternion= new THREE.Quaternion();
    quaternion.setFromAxisAngle(new THREE.Quaternion(dy,dx,0).normalize(),Math.sqrt(dx*dx+dy*dy)/250.0);
    object.quaternion.multiplyQuaternions(quaternion,object.quaternion);
}

Solange sich das Objekt in vertikaler oder horizontaler Position befindet, dreht es sich korrekt. Wenn es sich jedoch beispielsweise um 45 Grad von der x-Achse entfernt befindet, dreht es sich sehr langsam und in die entgegengesetzte Richtung des Klicks.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage