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.
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)
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
Boîte de connexion
Bienvenue invité Inscris-toi c'est gratuit !
Rejoins-nous afin de poser tes questions dans les forums de Math foru' : Crée ton compte