LlRotBetween/fr

From Second Life Wiki
< LlRotBetween
Revision as of 17:24, 7 December 2008 by Zai Lynch (talk | contribs) (pre -> lsl)
Jump to navigation Jump to search

Description

Fonction: rotation llRotBetween( vector début, vector fin );

Renvoie un rotation correspondant à la rotation entre les vecteurs début et fin

• vector début
• vector fin

Spécifications

début et fin représentent des directions ayant pour origine le point <0.0, 0.0, 0.0>. Si vous utilisez une origine différente, soustrayez les coordonnées de cette origine aux vectors en entrée.

Avertissements

  • début * llRotBetween(début, fin) == fin est vrai uniquement si début et fin ont une norme identique et non nulle. (regardez les #Notes pour plus d’informations).

Exemples

<lsl>llRotBetween(<1.0, 0.0, 0.0>, <0.0, -1.0, 0.0>) // Renverra <0.00000, 0.00000, -0.70711, 0.70711> (représente un angle de -45 degrés sur l’axe z)

llRotBetween(<0.0, 0.0, 0.0>, <0.0, -1.0, 0.0>) // Renverra <0.00000, 0.00000, 0.00000, 1.00000> (représente un angle nul sur tous les axes) // car <0.0, 0.0, 0.0> ne donne pas de direction.</lsl>

Notes

Cette fonction réalise un ajustement de la norme des quaternions ainsi : début * llRotBetween(début, fin) == fin est vrai tant qu’aucune des deux valeurs n’a une norme nulle. Les vectors n’ont pas besoin d’avoir la même norme. <lsl> rotation RotBetween(vector début, vector fin) //ajuste la norme des quaternions de façon à ce que (début * retour_fonction == fin) {//Note de l’auteur : Je n’ai jamais eu besoin de ce script, mais il est toujours bon de le connaître au cas où...

   rotation rot = llRotBetween(début, fin);
   if(début)
   {
       if(fin)
       {
           float d = llSqrt(llVecMag(fin) / llVecMag(début));
           return <rot .x * d, rot .y * d, rot .z * d, rot .s * d>;
       }
   }
   return rot;

}//Strife Onizuka </lsl>

Voir également

Fonctions

•  llAngleBetween Renvoie l’angle entre deux rotations
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.