interpolation/Linear/Rotation

From Second Life Wiki
< Interpolation‎ | Linear
Revision as of 02:30, 14 September 2011 by Nexii Malthus (talk | contribs) (Created page with "{{LSL_Function |mode=user |func=rLin |p1_type=rotation|p1_name=x |p2_type=rotation|p2_name=y |p3_type=float|p3_name=t |return_type=rotation |return_value=returns the interpolatio…")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Summary

Function: rotation rLin( rotation x, rotation y, float t );

Interpolates between two rotation values in a linear fashion.
Returns a rotation

• rotation x
• rotation y
• float t

Specification

<lsl>rotation rLin(rotation x, rotation y, float t) {

   float ang = llAngleBetween(x, y);
   if(ang > PI) ang -= TWO_PI;
   return x * llAxisAngle2Rot(llRot2Axis(y/x)*x, ang*t);

}</lsl>

Examples

<lsl> rotation x = llRot2Euler(<0,0,30*DEG_TO_RAD>); rotation y = llRot2Euler(<0,0,90*DEG_TO_RAD>);

rotation z = rLin(x, y, 0.5); // z equivalent to euler rotation of 60 degrees on Z axis</lsl>