Difference between revisions of "LlRotBetween/fr"
m (pre -> lsl) |
m |
||
Line 11: | Line 11: | ||
|examples= | |examples= | ||
<lsl>llRotBetween(<1.0, 0.0, 0.0>, <0.0, -1.0, 0.0>) | <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 - | // Renverra <0.00000, 0.00000, -0.70711, 0.70711> (représente un angle de -90 degrés sur l’axe z) | ||
llRotBetween(<0.0, 0.0, 0.0>, <0.0, -1.0, 0.0>) | llRotBetween(<0.0, 0.0, 0.0>, <0.0, -1.0, 0.0>) |
Latest revision as of 11:05, 3 June 2014
LSL Portail Francophone | LSL Portail Anglophone | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Description
Fonction: rotation llRotBetween( vector début, vector fin );21 | N° de fonction |
0.0 | Delais |
10.0 | Energie |
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 -90 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 |