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

Développement 2D, 3D et Jeux Discussion :

Angles de Rotation


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par défaut Angles de Rotation
    Bonjour !

    Je cherche a appliquer des rotations a des Cylindre crées en (0,0,0) avec pour hauteur l'axy Y, afin que leur deux extremitées coincident avec deux points.
    Le résultat que j'ai obtenu est tres surprennant, en effet je dois avoir 80% des cylindres correctement placés , alors que les autres ne le sont pas.

    Est ce que quelqu un a deja eu ce genre de problème ?

    Voici les deux fonctions de rotation selon l'axe X et Z, elles me semblent correctes. Il y a juste un doute sur le return, en particulier sur le signe ( ou peut etre un Pi/2 a ajouter ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	private float getXAngle(Vector3f vectA){
    		float angleX = (float)Math.atan(vectA.z/vectA.y);
    		//System.out.println("Angle X = "+ angleX);
    		return angleX;
    	}
     
    	private float getZAngle(Vector3f vectA){
    		float angleZ = (float)Math.atan(vectA.x/vectA.y);
    		//System.out.println("Angle Z = "+ angleZ);
    		return -angleZ;
    	}
    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Le problème (j'ignore si c'est l'unique) c'est que tu utilises une fonction non bijective ; il y a deux angles possibles pour une tangente donnée, donc tu as une chance sur 2 de récupérer le bon.

    Remplace Math.atan(vectA.x/vectA.y) par Math.atan2(vectA.x, vectA.y).

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par défaut
    Apparement, c'est pas le seul problème
    Merci quand meme pour l'info, a mon avis y manque plus qu'une petite addition avec des PI/2 etc ...

    Je m'y met !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 82
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Math.atan(vectA.z/vectA.y)
    Sans aucune certitude que l'origine du problème se trouve là, il me paraîtrait plus prudent de traiter le cas vectA.y == 0.0 afin d'éviter une division par zéro.

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

Discussions similaires

  1. redressement d'image et angle de rotation
    Par thatslife dans le forum C
    Réponses: 15
    Dernier message: 16/09/2011, 15h55
  2. Changer value de l'angle de rotation
    Par tomtom_94 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 06/04/2008, 23h46
  3. [Newton] probleme d'angle de rotation des objet
    Par Syl_20 dans le forum Newton
    Réponses: 13
    Dernier message: 27/08/2007, 09h41
  4. Calculer la normale grace a trois angles de rotations plus un point.
    Par parp1 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 02/03/2007, 18h34
  5. Définir un angle de rotation pour une image
    Par mateo.14 dans le forum C++
    Réponses: 5
    Dernier message: 25/03/2005, 15h43

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