Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Changement de repère



  1. #1
    Groovy54

    Changement de repère

    Bonjour !

    Je connais les coordonnées de deux points (Notons les A(Xa, Ya, Za) et B(Xb, Yb, Zb)).
    J'aimerais trouver la rotation minimale du repère telle que l'axe Oz soit parallèle à (AB).

    J'ai essayé de faire la rotation d'angle atan((Yb-Ya)/(Xa-Xb))+pi/2 et d'axe z suivie de la rotation d'angle atan((Zb-Za)/(Xb-Xa))+pi/2 et d'axe y. J'obtiens des résultats assez proches de ce que je veux, mais ce n'est toujours pas ça que je cherche...

    J'aurais donc aimé votre aide pour savoir quelle(s) rotation(s) permettraient ce changement de repère.
    Eventuellement, vous pourriez me donner une matrice permettant de faire ce changement de repère à la place de rotation(s).

    PS : Je suis en Terminale, et c'est pour un projet perso (jeu en C++) que je demande ça. Donc si possible, évitez les termes trop compliqués :P .

    Merci d'avance

    -----


  2. Publicité
  3. #2
    acx01b

    Re : Changement de repère

    si tu veux faire tourner le vecteur AB autour d'un axe pour qu'il devienne parallèle à Oz, quel sera cet axe ?

    un axe perpendiculaire à AB et Oz, donc Axe = cross(AB,Oz) , cross étant le produit vectoriel

    il ne te reste qu'à trouver de quel angle il faut faire tourner AB :
    pour ça tu décrètes que Oz c'est l'angle 0 ,et que l'angle Pi/2 c'est ...
    un vecteur perpendiculaire à Oz et dans le même plan que le plan (AB,Oz)
    ça tombe bien on connait la normale à ce plan : Axe
    on cherche donc un vecteur perpendiculaire à Axe, et perpendiculaire à Oz:
    donc orthoOz = cross(Axe,Oz)

    je te laisse appliquer tes formules de trigo (fonction atan2 en C++) pour trouver l'angle entre AB et Oz dans le plan (Oz, orthoOz)

  4. #3
    Groovy54

    Re : Changement de repère

    Merci, mais j'avoue que pour l'angle j'ai pas bien suivi la logique...

    Bon, pour l'axe, on obtient (Yb-Ya, Xa-Xb, 0), c'est bien ça ?

    Ensuite, et c'est là que je commence à être perdu, orthoOz, j'ai pas bien suivi à quoi il servait
    J'ai quand même calculer ses coordonnées et j'obtiens (Xb-Xa, Yb-Ya, 0). Est-ce que c'est bon ?

    Ensuite, l'angle, ce serait atan((Yb-Ya)/(Xb-Xa)) (ce qui donne en C++ : atan2(Yb-Ya, Xb-Xa).)

    Mais j'ai dû faire une erreur, parce que ça ne fonctionne pas...
    C'est où que je me suis trompé ? J'ai beau vérifier, je ne trouve pas mon erreur ...

  5. #4
    acx01b

    Re : Changement de repère

    relis bien et compare avec ce code qui fait ce que tu veux :

    float3 A; // ton point A
    float3 B; // ton point B
    float3 Oz = float3(0,0,1); // Oz
    float3 AB = B-A;
    float3 Axe = Cross(Oz,AB); // Axe est perpendiculaire à Oz et AB
    float3 orthoOz = Cross(Oz,Axe); // orthoOz est perpendiculaire à Oz et Axe, donc orthoOz, Oz et AB sont dans le même plan

    // on normalise tout pour le plaisir (non en fait c'est pour que les produits scalaires donnent directement le cosinus et le sinus de l'angle
    AB.normalize();
    Axe.normalize();
    Oz.normalize();
    orthoOz.normalize();

    // maitenant on peut calculer le cosinus et le sinus de l'angle
    float cosAngle = dot(AB,Oz); // dot : produit scalaire;
    float sinAngle = dot(AB,orthoOz);
    float angle = atan2(sinAngle,cosAngle);

    // tu as maintenant ton axe et ton angle

  6. #5
    Groovy54

    Re : Changement de repère

    Merci bien, je regarderai ça à tête reposée
    (ça fait un moment que je galère dessus et je commençais à en avoir un peu marre lol)

    @+

  7. A voir en vidéo sur Futura

Sur le même thème :

Discussions similaires

  1. changement de repère
    Par rizaucurry999 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 26/11/2008, 21h20
  2. changement de repère
    Par rizaucurry999 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 18/11/2008, 17h59
  3. changement de repère
    Par rizaucurry999 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 18/11/2008, 17h58
  4. changement de repère
    Par rizaucurry999 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 18/11/2008, 17h57
  5. changement de repère
    Par bilou2007 dans le forum Physique
    Réponses: 7
    Dernier message: 07/03/2007, 09h40