LlSetRot/fr
From Second Life Wiki
Page Principale > LlSetRot > LlSetRot/fr
| LSL Portal | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Description
Fonction: llSetRot( rotation rot );| 61 | N° de fonction |
| 0.2 | Delais |
| 10.0 | Energie |
- règle la rotation du prim contenant le script à la rotation rot.
| • rotation | rot |
Inconvénients
- Cette fonction fait dormir le script pendant 0.2 secondes.
- Si la prim est attachée a un avatar, la rotation est appliquée dans le référentiel local du point d'attachement : voir référentiel local : les attachements et la fonction ajoute la rotation de l'avatar.
- Si la prim n’est pas la prim racine, la rotation est appliquée dans le référentiel local du prim racine référentiel local : Les prims filles et la fonction ajoute la rotation du prim racine.
Pour eviter cet ajout il faut alors diviser la rotation appliquée par la rotation du prim racine :- Si vous essayez de régler la rotation d’une prim fille par rapport à une prim racine, alors divisez la rotation locale voulue par celle de la prim racine.
- Si vous essayez de régler la rotation d’une prim fille comme une rotation globale, alors divisez deux fois la rotation globale voulue par celle de la prim racine.
- Il est plus simple d’utiliser llSetLocalRot pour régler la rotation d’une prim fille, même pour une rotation globale (dans ce cas, multipliez simplement par la rotation de la prim racine)
- Il n’y a aucune solution simple permettant d’obtenir la rotation du référentiel local de la prim racine d’un objet attaché (autre que de faire communiquer la rotation par la prim racine)
- Pour les petites rotations successives, il y a un seuil de mise a jour qui dépends de la fréquence des changements. Ce seuil ne semble plus soumis à la règle des 6 degrés.
Exemples
Réglage de la rotation d'un prim fille par rapport a la prim racine :
// l'instruction suivante est placée dans un prim fille d'un objet non attaché llSetRot(ZERO_ROTATION/llGetRootRotation()); // Mets la rotation du prim fille a ZERO_ROTATION dans le repere local // ==> Dans le repere global le prim fille va prendre exactement la meme rotation que le prim racine.
Réglage de la rotation d'un prim fille par rapport au repère global :
// l'instruction suivante est placée dans un prim fille d'un objet non attaché llSetRot(ZERO_ROTATION/llGetRootRotation()/llGetRootRotation()); // Mets la rotation du prim fille a ZERO_ROTATION dans le repere global // ==> Dans le repere global le prim fille va prendre la rotation <0,0,0>.
Exemple de script permettant une rotation incrémentale de 1 degré selon l'axe y à chaque toucher (à mettre dans un prim racine).
rotation rot_xyzq; default { state_entry() { vector xyz_angles = <0,1.0,0>; // Rotation de 1 deg selon l'axe y en représentation de Euler (type vecteur) vector angles_in_radians = xyz_angles*DEG_TO_RAD; // convertion en radians rot_xyzq = llEuler2Rot(angles_in_radians); // conversion en représentation sous forme de quaternion (type rotation) } touch_start(integer s) { llSetRot(llGetRot()*rot_xyzq); // Recupere la rotation actuelle par llGetRot() // lui ajoute une rotation de un degré par *rot_xyzq // et applique la rotation obtenue } }
Voir également
Fonctions
| • | llGetRot | – | Renvoie la rotation actuelle. | |
| • | llSetLocalRot | – | Applique une nouvelle rotation | |
| • | llGetRootRotation | – | Renvoie la rotation du prim racine. |
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.

