Difference between revisions of "LlAxes2Rot"

From Second Life Wiki
Jump to: navigation, search
m (Added a Haiku)
Line 41: Line 41:
|haiku={{Haiku|quaternions rule|the whole world spins at your whim|or crashes and burns}}

Latest revision as of 05:10, 7 March 2016


Function: rotation llAxes2Rot( vector fwd, vector left, vector up );

Returns a rotation that is defined by the 3 coordinate axes

• vector fwd
• vector left
• vector up

All three vectors must be mutually orthogonal unit vectors.


        vector i = < 1.0, 0.0, 0.0>;
        vector j = < 0.0, 1.0, 0.0>;
        vector k = < 0.0, 0.0, 1.0>;
        rotation rot = llAxes2Rot( j, -i, k );
        llSay(0, (string) (llRot2Euler(rot) * RAD_TO_DEG) );

This script displays:

  Object: <-0.00000, 0.00000, 90.00000>
which shows that (j, -i, k) is obtained by rotating (i, j, k) 90 degrees around z direction.


Technically, only the first two vectors are needed to define this rotation, which can be done by calling any of these:

llAxes2Rot(fwd, left, fwd % left);
llAxes2Rot(left % up, left, up);
llAxes2Rot(fwd, up % fwd, up);

Deep Notes

Search JIRA for related Issues


•  Visual illustration Importance of mutually orthogonal unit vectors


function rotation llAxes2Rot( vector fwd, vector left, vector up );


quaternions rule
the whole world spins at your whim
or crashes and burns