Je souhaite faire pivoter une image le long des trois axes de manière à ce que toutes les rotations soient prises en compte dans l'ordre approprié.
Am utilisant Three Js
bibliothèque et la rotation semble fonctionner le long d'un axe et avec les trois axes, la rotation est anormale. J'ai vu quelques idées sur la rotation en utilisant quaternions pour éviter le verrou de cardan et j'ai essayé Euler mais il n'a pas réussi.Comment faire pivoter une sphère le long des trois axes (x, y, z) simultanément
sphericImageMesh_ est ma sphère et this.getRollDeg() est méthode pour obtenir rouleau comme indiqué par la caméra.
Ce que j'ai essayé est ici-bas:
// 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()));
Je l'ai vu sur l'utilisation de Quaternions
et MatrixX4
et je ne suis pas sûr de savoir comment l'appliquer. Toute aide serait appréciée.
Il n'a pas fonctionné, j'ai essayé toutes les combinaisons de commande, ou devrais-je utiliser kappa, oméga, phi au lieu de lacet, roulis et tangage – riotday
? as-tu lu la documentation que j'ai liée? La hauteur et le roulis du lacet ne sont pas des mots-clés pour TROIS js, ni kappa omega phi. J'utilisais simplement la terminologie de «Flightsim». Incluez un violon avec votre projet et décrivez le comportement que vous recherchez. "ça n'a pas marché" peut signifier beaucoup de choses. – OtterFamily