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

Algorithmes et structures de données Discussion :

matrice 3 dimensions autour de z


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 123
    Par défaut matrice 3 dimensions autour de z
    Bonsoir,

    Voila je suis confronte a un probleme lors d'une transformation par matrice
    c'est tout simple comme ca mais j'ai du mal:
    dans le cadre d'un tp je dois realiser une rotation de 3 point x, y, z (0,50,0) d'un angle de 90degres
    dans le tp il annonce le resultat pour test --> (50,0,0) alors que moi j'obtient (-50,0,0) donc ma question est la suivante y'as t'il une erreur dans l'enonce de mon tp ou ma formule est incorrect??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
    struct	rotation
    {
      float		x1;
      float		y1;
      float		z1;
      float		anglex;
      float		angley;
    }r;
     
    void	rotate_z(float x, float y, float z, float anglez)
    {
      float agl;
     
      agl = anglez * M_PI / 180;
      r.x1 = (x * cosf(agl)) - (y * -sinf(agl));
      r.y1 = (x * sinf(agl)) + (y * cosf(agl));
      r.z1 = z;
      printf("A(%f, %f, %f) --> B(%f,%f,%f)\n",x,y,z, r.x1, r.y1, r.z1);
    }
     
    int	main(int ac, char **av)
    {
      rotate_z(0,50,0,90);
      return (0);
    }
    merci de votre aide...

  2. #2
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    Une rotation..... AUTOUR DE QUEL AXE??

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 123
    Par défaut axe
    oui mes excuses selon l'axe Z

  4. #4
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Pour la formule, utilises celle ci :

    http://jeux.developpez.com/faq/matqu...formations#Q30

    Par contre ta formule telle que tu la donne est fausse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    r.x1 = (x * cosf(agl)) - (y * -sinf(agl));
    Tu as une double négation ... j'utiliserai plutôt ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    r.x1 = (x * cosf(agl)) - (y * sinf(agl));
    Pour ton problème de résultat, c'est tout à fait normal. En fait dans une rotation, tu as toujours deux résultat. Si en voiture je te demande de tourner de 90 degrés, tu vas aussitôt me demander dans quel sens.

    Le résultat que tu obtiens dépend donc du sens de rotation.

    Ta solution est tout à fait juste, tu as fait une rotation dans le sens trigo.

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 123
    Par défaut oui
    oui j'ai fait une erreur dans la formule donc tout depend de l'orientation de rotation pour avoir -50 j'orez du avoir un angle de -pi/2 .

    ok tout est clair merci pour la confirmation.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/06/2009, 16h08
  2. Réponses: 3
    Dernier message: 01/06/2009, 16h57
  3. tableau / matrice à n dimensions
    Par Bele'nos dans le forum C++
    Réponses: 11
    Dernier message: 28/12/2008, 14h51
  4. Réponses: 2
    Dernier message: 29/04/2008, 15h12
  5. [TP] Matrice à deux dimensions
    Par bongo parfait dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 18/03/2007, 22h20

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