2017-09-12 6 views
0

J'ai trouvé un problème avec les rotations. En utilisant l'assistant de contrôle de transformation, si je fais tourner un maillage sur l'axe Y, quand j'atteins 90 degrés, tout est inversé de -180 degrés.Verrou de cardan à l'axe y 90 degrés

Je pense que cela est dû au logiciel évitant le verrou cardan, comment l'éviter? En d'autres termes, j'aimerais que les angles x et z restent à 0 degré sur l'affichage.

J'ai essayé même sur l'éditeur threejs (https://threejs.org/editor/) et il se produit même là. S'il vous plaît aidez-moi :)!

Répondre

1

Ce que vous décrivez n'a rien à voir avec le verrouillage du cardan.

three.js est basé sur quaternion. Une représentation équivalente de l'angle d'Euler est fournie pour plus de commodité.

Les angles d'Euler ne sont pas uniques; il y a beaucoup d'angles d'Euler qui représentent la même orientation. Voir this answer pour savoir comment les angles d'Euler fonctionnent dans three.js.

Si vous souhaitez faire pivoter un objet sur l'axe y seulement, et ont object.rotation.y être continue, vous pouvez le faire en changeant l'ordre de rotation comme ceci:

object.rotation.order = 'YXZ'; 

Three.js R.87

+0

Ok, compris, merci beaucoup! Je vais tout changer en considérant des angles de quaternions au lieu de mailles de rotation euler. Merci encore :)! –

+0

N'oubliez pas d'accepter les réponses en cliquant sur la coche. – WestLangley