2017-06-28 1 views
0

Ich möchte ein Bild entlang aller drei Achsen so drehen, dass alle Drehungen in geeigneter Reihenfolge berücksichtigt werden.
Ich benutze Three Js Bibliothek und die Rotation scheint entlang einer Achse zu arbeiten und mit den drei Achsen ist die Rotation abnormal. Ich habe einige Ideen über das Drehen mit Quaternionen gesehen, um eine kardanische Sperre zu vermeiden, und ich habe Euler versucht, aber es war nicht erfolgreich.Wie man eine Kugel entlang der drei Achsen (x, y, z) gleichzeitig dreht

sphericImageMesh_ ist meine Kugel und this.getRollDeg() ist Methode Rolle zu bekommen, wie von der Kamera gegeben.

Was habe ich versucht, ist hier unten:

// var euler = new THREE.Euler(- THREE.Math.degToRad(this.getRollDeg()), - THREE.Math.degToRad(this.getHeadingDeg()) , - THREE.Math.degToRad(this.getPitchDeg()), 'XYZ'); 
// this.sphericImageMesh_.setRotationFromEuler(euler); 

// this.sphericImageMesh_.rotateZ(THREE.Math.degToRad(-this.getPitchDeg())); 
// this.sphericImageMesh_.rotateX(THREE.Math.degToRad(-this.getRollDeg())); 
this.sphericImageMesh_.rotateY(THREE.Math.degToRad(-this.getHeadingDeg())); 

Ich habe über die Verwendung von Quaternions und MatrixX4 und bin mir nicht sicher gesehen, wie sie anzuwenden. Jede Hilfe wird geschätzt.

Antwort

0

können Sie versuchen, die Rotationen neu zu ordnen. Ich denke, es ist standardmäßig XYZ, aber ich finde, YXZ oder YZX funktioniert intuitiver. benutze n.rotation.order ('YXZ'); und sehen, ob es sich nicht näher an das, woran du denkst, hält. Wenn du einen Flugsimulator machst, in dem + Z vorwärts ist, wird dies intuitiver funktionieren. Sie gieren, dann werfen, dann rollen.

https://threejs.org/docs/index.html#api/math/Euler

+0

Es funktionierte nicht, ich alle um Kombinationen ausprobiert, oder sollte ich kappa, omega, phi statt Gier-, Wank- und Nick – riotday

+0

? Hast du die Dokumentation gelesen, die ich verlinkt habe? Yaw Pitch and Roll sind keine Schlüsselwörter für THREEjs, noch sind Kappa Omega Phi. Ich habe nur flightsim Terminologie verwendet. Füge deinem Projekt eine Geige hinzu und beschreibe das Verhalten, nach dem du suchst. "Es hat nicht funktioniert" kann viele Dinge bedeuten. – OtterFamily

Verwandte Themen