<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.osgrid.org/index.php?action=history&amp;feed=atom&amp;title=LlAxes2Rot</id>
	<title>LlAxes2Rot - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.osgrid.org/index.php?action=history&amp;feed=atom&amp;title=LlAxes2Rot"/>
	<link rel="alternate" type="text/html" href="http://wiki.osgrid.org/index.php?title=LlAxes2Rot&amp;action=history"/>
	<updated>2026-10-25T11:12:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>http://wiki.osgrid.org/index.php?title=LlAxes2Rot&amp;diff=66&amp;oldid=prev</id>
		<title>Osgridadmin: /* Function: rotation llAxes2Rot( vector fwd, vector left, vector up ); */</title>
		<link rel="alternate" type="text/html" href="http://wiki.osgrid.org/index.php?title=LlAxes2Rot&amp;diff=66&amp;oldid=prev"/>
		<updated>2017-12-30T16:04:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Function: rotation llAxes2Rot( vector fwd, vector left, vector up );&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Function: rotation llAxes2Rot( vector fwd, vector left, vector up );==&lt;br /&gt;
Returns a rotation that is defined by the 3 coordinate axes &amp;lt;br&amp;gt;&lt;br /&gt;
• vector 	fwd 	&amp;lt;br&amp;gt;		&lt;br /&gt;
• vector 	left 	&amp;lt;br&amp;gt;		&lt;br /&gt;
• vector 	up 	&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;		&lt;br /&gt;
&lt;br /&gt;
All three vectors must be mutually orthogonal unit vectors.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Examples&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        vector i = &amp;lt; 1.0, 0.0, 0.0&amp;gt;;&lt;br /&gt;
        vector j = &amp;lt; 0.0, 1.0, 0.0&amp;gt;;&lt;br /&gt;
        vector k = &amp;lt; 0.0, 0.0, 1.0&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
        rotation rot = llAxes2Rot( j, -i, k );&lt;br /&gt;
 &lt;br /&gt;
        llSay(0, (string) (llRot2Euler(rot) * RAD_TO_DEG) );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This script displays: &lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
 Object: &amp;lt;-0.00000, 0.00000, 90.00000&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
which shows that (j, -i, k) is obtained by rotating (i, j, k) 90 degrees around z direction. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Technically, only the first two vectors are needed to define this rotation, which can be done by calling: &lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
llAxes2Rot(fwd, left, fwd % left);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Osgridadmin</name></author>
	</entry>
</feed>