LlAxisAngle2Rot

De DigiWiki.

(Différences entre les versions)
(Page créée avec « <lsl> default { state_entry() { vector axis = <0.0, 0.0, 1.0>; float angle = 90.0 * DEG_TO_RAD; rotation rot = llAxisAngle2Rot(axis, angle); … »)
Ligne 11 : Ligne 11 :
         llOwnerSay((string) euler);
         llOwnerSay((string) euler);
         //Says <0.0, 0.0, 90.0> since it is rotating 90 degrees on the Z axis caused by the 1.0 placed in the Z vector spot.  
         //Says <0.0, 0.0, 90.0> since it is rotating 90 degrees on the Z axis caused by the 1.0 placed in the Z vector spot.  
 +
    }
 +
}
 +
</lsl>
 +
 +
==== Sinppet ====
 +
<lsl>
 +
rotateFromStartToFinish(integer N,rotation startRot,rotation endRot)
 +
{
 +
    rotation B = (ZERO_ROTATION/startRot)*endRot;
 +
    vector axis = llRot2Axis(B);
 +
    float angle = llRot2Angle(B);
 +
 +
    integer j;
 +
   
 +
    for(j = 0; j <= N, ++j)
 +
    {
 +
        llSetRot(startRot*llAxisAngle2Rot(axis,((float)j)/((float)N)*angle));
     }
     }
}
}
</lsl>
</lsl>

Version du 23 août 2013 à 01:24

default
{
    state_entry()
    {
        vector axis = <0.0, 0.0, 1.0>;
        float angle = 90.0 * DEG_TO_RAD;
        rotation rot = llAxisAngle2Rot(axis, angle);
        vector euler = llRot2Euler(rot) * RAD_TO_DEG;
 
        llOwnerSay((string) euler);
        //Says <0.0, 0.0, 90.0> since it is rotating 90 degrees on the Z axis caused by the 1.0 placed in the Z vector spot. 
    }
}

Sinppet

rotateFromStartToFinish(integer N,rotation startRot,rotation endRot)
{
    rotation B = (ZERO_ROTATION/startRot)*endRot;
    vector axis = llRot2Axis(B);
    float angle = llRot2Angle(B);
 
    integer j;
 
    for(j = 0; j <= N, ++j)
    {
        llSetRot(startRot*llAxisAngle2Rot(axis,((float)j)/((float)N)*angle));
    }
}
Outils personnels
donate
Google Ads