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 :

fonction clamp trouvée dans la faq, qqn la connait?


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 85
    Points : 55
    Points
    55
    Par défaut fonction clamp trouvée dans la faq, qqn la connait?
    bonjour,
    voila le lien où je suis tombé sur une fonction inconnue,
    c'est la fonction clamp .
    http://jeux.developpez.com/faq/matqu...ransformations

    Elle est utilisée dans un algo qui permet de retrouver les angles d'euler à partir d'une matrice de rotation.
    L'algo est le suivant:
    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
    28
    29
    angle_y = D = -asin(mat[2]);           /* Calcul de l'Angle Y */
    C           =  cos(angle_y);
    angle_y    *=  RADIANS;
     
    if (fabs(C) > 0.005)                /* Gimbal lock ? */
    {
        trx      =  mat[10] / C;           /* Non, donc calcul de l'angle X */
        try      = -mat[6]  / C;
     
        angle_x  = atan2(try, trx) * RADIANS;
     
        trx      =  mat[0] / C;            /* Calcul de l'angle Z */
        try      = -mat[1] / C;
     
        angle_z  = atan2(try, trx) * RADIANS;
    }
    else                                   /* Gimbal lock  */
    {
        angle_x  = 0;                      /* Angle X à 0 */
     
        trx      = mat[5];                 /* Calcul de l'angle Z */
        try      = mat[4];
     
        angle_z  = atan2(try, trx) * RADIANS;
    }
     
    angle_x = clamp(angle_x, 0, 360);  /* Modulo ;) */
    angle_y = clamp(angle_y, 0, 360);
    angle_z = clamp(angle_z, 0, 360);
    bon , c 'est pas trop parlant le code mais si qqn peut aller voir où est utilisée la méthode clamp dans le lien que j'ai donné plus haut et me dire à quoi sert cette fonction, ca serait cool,
    merci,
    Xavier

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    bien le bonjour,

    cette fonction sert à ramener l'angle entre 0° et 360°
    donc -10° sera clampé en 350°

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 85
    Points : 55
    Points
    55
    Par défaut
    merci
    bonne journée;

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/11/2014, 09h36
  2. Fonction LIMIT : Erreur dans la FAQ ?
    Par le Daoud dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 04/10/2007, 21h08
  3. Réponses: 4
    Dernier message: 16/11/2006, 02h10
  4. Réponses: 3
    Dernier message: 30/05/2006, 17h28

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