2010-05-16 4 views
0

En utilisant la règle de la main gauche, je fais pivoter un objet vers la gauche et la droite à l'aide de l'axe y et je le fais pivoter vers le haut/bas en utilisant l'axe x. Après rotation du premier objet vers la droite, la rotation haut/bas doit utiliser l'axe z. Cependant, lorsque j'essaie de tourner en utilisant l'axe z, après la première rotation, cela a le même effet quand je tourne en utilisant l'axe y.Rotation d'axe Question

Quelqu'un a des idées?

Merci

+0

Quelle langue? Quel cadre? Montrez-nous du code. – kikito

Répondre

0

L'ordre approprié des rotations afin de garder tout droit est roulis, tangage, lacet. C'est-à-dire, la rotation autour de l'axe X, la rotation autour de l'axe Y, la rotation autour de l'axe Z.

0

Vous ne savez pas quelle est votre question, mais si vous demandez pourquoi cela se produit, la réponse est que les rotations ne sont pas commutatives. C'est-à-dire qu'une rotation de thêta autour de l'axe A suivie d'une rotation de phi autour de l'axe B n'est pas la même que la rotation de phi autour de l'axe B suivi d'une rotation de thêta autour de l'axe A. une séquence d'opérations qui semble correcte quand vous visualisez ne fonctionne pas dans le code, assurez-vous que vous utilisez un système de coordonnées droitier. En outre, il peut être utile de travailler à travers vos différentes matrices de rotation pour les axes x, y et z en utilisant le vecteur unitaire (1,0,0) - en fait, si vous le faites sur papier, vous aurez une meilleure intuition pour que ce passe-t-il.

0

Merci pour toutes les réponses:

Désolé, je n'ai pas dit clairement le problème. C'est le problème typique de verrouillage de cardan. et ma solution est d'utiliser la rotation quaternion

+1

Bienvenue dans StackOverflow! Vous ne devriez pas le poster comme une réponse séparée, cependant - éditez-le dans votre question originale en utilisant le lien 'edit' sous le texte principal. –