Difference between revisions of "LlEuler2Rot"

From Second Life Wiki
Jump to navigation Jump to search
(Added order of rotation in Euler vector)
m
Line 8: Line 8:
|caveats
|caveats
|constants
|constants
|examples=<pre>
|examples=<lsl>
default
default
{
{
Line 18: Line 18:
     }
     }
}
}
</pre>
</lsl>
|helpers
|helpers
|also_functions={{LSL DefineRow||[[llRot2Euler]]|}}
|also_functions={{LSL DefineRow||[[llRot2Euler]]|}}
Line 24: Line 24:
|also_tests
|also_tests
|also_articles={{LSL DefineRow||{{Wikipedia|Euler_Angles}}|}}
|also_articles={{LSL DefineRow||{{Wikipedia|Euler_Angles}}|}}
|notes
|notes=<lsl>v/=2;
rotation k = <0,0,llSin(v.z),llCos(v.z)> * <0,llSin(v.y),0,llCos(v.y)> * <llSin(v.x),0,0,llCos(v.x)>;</lsl>
|permission
|permission
|negative_index
|negative_index

Revision as of 09:34, 25 December 2007

Summary

Function: rotation llEuler2Rot( vector v );

Returns a rotation representation of Euler Angles v.

• vector v

Specification

The Euler angle vector is converted to a rotation by doing the rotations around the 3 axes in Z, Y, X order. So llRot2Euler(<1.0, 2.0, 3.0> * DEG_TO_RAD) generates a rotation by taking the zero rotation, a vector pointing along the X axis, first rotating it 3 degrees around the global Z axis, then rotating the resulting vector 2 degrees around the global Y axis, and finally rotating that 1 degree around the global X axis.

Examples

<lsl> default {

   state_entry()
   {
       vector input = <73.0, -63.0, 20.0> * DEG_TO_RAD;//not advised to make your own quaternion
       rotation rot = llEuler2Rot(input);
       llSay(0,"The Euler2Rot of "+(string)input+" is: "+(string)rot );
   }

}

</lsl>

Notes

<lsl>v/=2; rotation k = <0,0,llSin(v.z),llCos(v.z)> * <0,llSin(v.y),0,llCos(v.y)> * <llSin(v.x),0,0,llCos(v.x)>;</lsl>

See Also

Functions

•  llRot2Euler

Articles

•  "Wikipedia logo"Euler_Angles

Deep Notes

Search JIRA for related Issues

Signature

function rotation llEuler2Rot( vector v );