Rotation : Exemples
User Rating: / 0
PoorBest 
Librairie Scripts
Written by Garmin K   
Exemples de manipulations de la rotation

 

$ExemplesRotations()
{
        //L'instruction suivante récupère la rotation d'une prim
        rotation rRotationActuelle = llGetRot();
        //on peut afficher cette rotation
        llOwnerSay("rRotationActuelle = " + (string)rRotationActuelle);
       
        //Convertir cette rotation en vecteur
        vector vRot2vect = llRot2Euler(rRotationActuelle);
        //mais cela donne une rotation en radian
        llOwnerSay("Vecteur en radians = " + (string)vRot2vect);
        //Il vaut mieux avoir des degrés pour travailler
        vRot2vect = llRot2Euler(rRotationActuelle) * RAD_TO_DEG;
        llOwnerSay("Vecteur en degrés = " + (string)vRot2vect);
        //Ce résultat est à comparer à celui obtenu dans Modifier : Objet : Rotation (degrés)

        //A partir de là, on fait les opérations voulues sur le vecteur en degrés (comme à l'école)
        //Multiplier les 3 angles par 2
        vector vVectX2 = vRot2vect * 2;
        llOwnerSay("vVectX2 = " + (string)vVectX2);
        //Ajouter 12.5 degrés à X, 25 degrés à Y et 33.3 degrés à Z
        vector vVectPlus = vVectX2 + <12.5, 25.0, 33.3>;
        llOwnerSay("Vecteur vVectPlus = " + (string)vVectPlus);
        //Et toutes autres sortes d'opérations (voir Vecteurs dans le Wiki)
       
        //Il est temps maintenant de retourner notre vecteur vers une rotation
        //On le convertit en radian puis en rotation
        rotation rRotationSortie = llEuler2Rot(vVectPlus * DEG_TO_RAD);
        llOwnerSay("Rotation en sortie = " + (string)rRotationSortie);
       
        //Appliquer la rotation calculée
        llSetRot(rRotationSortie);
       
        //Ainsi par cette méthode on n'a jamais besoin de s'occuper des quaternions
        //Garmin Kawaguichi
}

default
{
    state_entry()
    {
        //Mettre la rotation àX=0.0  Y=0.0  Z=0.0
        llSetRot(ZERO_ROTATION);
        //Exemples de manipulation de rotation
        llOwnerSay("__________ Exemples de manipulations de la rotation __________");
       
        //Appel une fonction utlisateur
        $ExemplesRotations();
    }
   
    touch_start(integer iNbClick)
    {
        $ExemplesRotations();
    }
   
    on_rez(integer iNumLiaison)
    {
        llResetScript();
    }
}

 

 


ce n'est pas un script pratique mais plutôt un exemple. Mettez-le dans un cube et cliquez. (Ça fait passer le temps Wink )

 

 

Add comment

Si vous ne voyez pas vos messages c est que vous n êtes pas enregistré sur Avatars-3d en tant que membre. Ils seront examinés par un administrateur avant d être publié! Si vous désirez publier rapidement vos messages enregistrez vous ici

Security code
Refresh