Trouver un axe depuis une normale


  • K

    Bonjour à tous,

    Alors voilà, j'ai une voiture, sur un plan incliné, dans un environnement 3D.

    Mon repère est:
    X en horizontale, Y en verticale, et Z en profondeur.

    -Je connais la normale de ce plan
    -Je connais la direction, le cap de la voiture (0 lorsqu'elle va tout droit, PI/2 lorsqu'elle est tournée vers la droite, PI lorsqu'elle est tournée vers l'arrière, etc...).

    A partir de là, je doit retrouver l'axe de rotation dans le repère de la voiture ainsi que l'angle pour mettre à jour le tangage et le roulis de celle-ci.

    Je pense qu'à partir de la normale du plan je peut retrouver l'axe et l'angle dans le repère global, et avec le cap de la voiture, il serait possible de retrouver l'axe dans le repère local.

    Qu'en pensez-vous?

    Merci 🙂

    A bientôt

    Aurélien


  • F

    salut

    posons O(i,j,k) le repère absolu
    posons O'(i',j',k') le repère lié à la voiture

    si je comprend bien ton enconcé , le voiture est portée par un plan lié au repère O',i',j',k'. celle ci point dans une direction donnée (son cap)
    cette direction peut etre modelisée par un vecteur dont les coordonnées s'expriment dans O',i',j',k'

    ton but est de terminer k' et trouver l'angle que fait ce dernier avec les vecteurs i ,j et k du repère absolu (si j'ai bien compris).

    tu connais donc i'=f(i,j,k) j'=g(i,j,k) et tu cherches k'=h(i,j,k)

    est ce bien tout cela?

    merci de me confirmer


  • K

    flight
    salut

    posons O(i,j,k) le repère absolu
    posons O'(i',j',k') le repère lié à la voiture

    si je comprend bien ton enconcé , le voiture est portée par un plan lié au repère O',i',j',k'. celle ci point dans une direction donnée (son cap)
    cette direction peut etre modelisée par un vecteur dont les coordonnées s'expriment dans O',i',j',k'

    ton but est de terminer k' et trouver l'angle que fait ce dernier avec les vecteurs i ,j et k du repère absolu (si j'ai bien compris).

    tu connais donc i'=f(i,j,k) j'=g(i,j,k) et tu cherches k'=h(i,j,k)

    est ce bien tout cela?

    merci de me confirmer

    Oui c'est bien ça, enfin j'pense :s

    Je viens de trouver une solution:

    1. Je récupère la normale du plan

    2. J'effectue une rotation autour de la normale, par l'angle du cap de la voiture
      Jusqu'ici, j'ai la rotation de la voiture autour de son axe local Y, ou de la normale de la pente dans le repère absolu.

    3. Je calcul le vecteur direction de la voiture dans le repère absolu (depuis le cap)

    4. j'effectue le produit scalaire entre la direction de la voiture et la pente, qui me donne l'axe autour duquel on va faire tourner la voiture pour avoir la même orientation que la pente.

    5. Je la fait donc tourner autour de cet axe, de l'angle de la pente calculé via la normale de ce plan.
      Jusqu'ici, j'ai les deux rotations stockées dans deux quaternion.

    Je les multiplie, je normalise le résultat et j'ai ma rotation finale prenant en compte le sol ainsi que le cap.

    Est-ce que c'est une méthode correcte?

    Merci beaucoup pour vous intéresser à mon problème.

    A bientôt

    Aurélien


Se connecter pour répondre