IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

calcul de rotation de coordonées


Sujet :

OpenGL

  1. #1
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 24
    Par défaut calcul de rotation de coordonées
    Bonjour,

    je voudrais pouvoir calculer en fonction des coordonnées d'un point A, les coordonnées du point B. Sachant que le point B est l'image du point A ayant subi une rotation de 10° sur l'axe des Y.

    Je vous remercie d'avance pour vos réponses car c'est pas avec mes notions de maths que je vais allé loin.

  2. #2
    Membre chevronné Avatar de charly
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 329
    Par défaut
    rotation : tu mutltiplie la matrices X,Y,Z par la matrice de rotation sur l'axe des y que je n'ai pas en tete
    ou alors tu aplique la trigo , ce qui revien au même au finish !!

  3. #3
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 24
    Par défaut
    je sais pour la matrice de rotation, c'est glRotate(...), cependant, j'ai besoin de stocker les coordonnées pour des raisons bien obscures que seul mon prof connait.

    Alors, oui, je dois utiliser la trigo mais c'est bien cela le problème, c'est que je suis une grosse buse en trigo donc si quelqu'un de calé en trigo pouvait m'aider ca serait sympa, sinon je vais chercher encore et encore jusqu'à ce que je meurs d'épuisement.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 15
    Par défaut
    Si c'est pour l'école je ne vais pas te donner la solution. Mais faut pas être extrêmement calé.

    Si c'est une rotation autour de l'axe des Y, tu te retrouve avec une rotation a deux dimension sur les plans X et Z. (si tu préfère rotation autour de l'origine)

    Si tu veux un indice (sans passer nécessairement par la matrice) dessine les triangles et le cercle trigonométrique en 2D en choisissant bien ton unité.

  5. #5
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 24
    Par défaut
    bon alors j'ai peut être une solution mais je n'en suis pas sur du tout et mon programme a encore quelques problemes mais je voudrai au moins savoir si la formule est bonne.

    donc pour calculer les coordonnées de B, en fonction de A, on doit faire

    B.x = A.x * cos(10°)
    B.y = A.x * sin(10°)

    est ce juste????

    merci encore

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 15
    Par défaut
    Enfin bon c'est un peu plus dur que je l'avais pensé (désolé).

    Pour trouver la rotation autour de l'origine tu peux utiliser la matrice c'est plus simple mais je peut te donner la solution sans.

    cos a -sin a
    sin a cos a

    ce qui te donne comme matrice inverse

    cos a sin a
    -sin a cos a

    (Tu a besoins de la matrice inverse a priori)

    Maintenant tu dois pouvoir adapter ca en 3D en prenant le fait qu'il s'agit d'une rotation sur un plan.

    La solution a laquelle j'avais pensé demande beaucoup plus de calcul et le calcul trigo n'est pas vraiment recommandé en informatique.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 118
    Par défaut
    voilà la réponse sans matrice pour rotation NON optimisé sur autour de l'axe x(il suffit de transposer pour avoir les rotations sur les autres axes) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	yf = y * cos(rad) - z * sin(rad);
    	zf = y* sin(rad) + z * cos(rad);
     
    	y=yf;
    	z=zf;

  8. #8
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 24
    Par défaut
    bon, en cherchant un peu j'ai trouvé une solution qui correspond à ce que je veux faire. Je l'expose au cas où quelqu'un d'autre en aurait besoin. Mais merci quand même à tous ceux qui ont répondu au sujet.

    B.z = A.x * sin(M_PI * ANGLE / 180);
    B.x = A.x * cos(M_PI * ANGLE / 180);

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 15
    Par défaut
    La j'ai comme un doute...

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 118
    Par défaut
    moi aussi...

    normalement la formule c sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    yb = ya * cos(rad) - za * sin(rad); 
       zb = ya* sin(rad) + za * cos(rad);
    Et sa ce retrouve dans les matrice de transformation.

  11. #11
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Par défaut
    Apres un peit dessin pour verif, je suis tout a fait d'accord avec sebh.

    Ahoyeau : ta formule ne peut pas marcher car si tu as un objets sur l'axe des y et que tu fais un rotation de 90° (Pi/2) le sinus vaut 0, donc ton objets ne va pas bouger, alors qu'on devrai avoir un invertions des coordonées (au signe près)

    Voili voilou
    Bibi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calcul des rotations des membres
    Par Alec6 dans le forum 3D
    Réponses: 0
    Dernier message: 07/07/2011, 10h02
  2. calculer les rotations à partir du vecteur direction
    Par dvince38 dans le forum Moteurs 3D
    Réponses: 3
    Dernier message: 04/07/2010, 04h48
  3. Interpolation d'Hermite pour calcul de rotation
    Par Blash dans le forum Mathématiques
    Réponses: 2
    Dernier message: 05/12/2009, 12h15
  4. Comment faire des calculs de Rotation avec Ogre
    Par Rumpel dans le forum Ogre
    Réponses: 0
    Dernier message: 22/07/2009, 18h15
  5. calculs mathematiques : rotation camera
    Par zax-tfh dans le forum OpenGL
    Réponses: 8
    Dernier message: 09/01/2006, 13h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo