Difference between revisions of "LlAtan2"

From Second Life Wiki
Jump to: navigation, search
Line 1: Line 1:
{{LSL Function
Line 43: Line 43:
{{LSL DefineRow||{{wikipedia|Atan2}}|}}
{{LSL DefineRow||{{wikipedia|Atan2}}|}}
{{LSL DefineRow||{{wikipedia|Inverse_trigonometric_function}}|}}
{{LSL DefineRow||{{wikipedia|Inverse trigonometric function}}|}}

Revision as of 12:34, 17 February 2012


Function: float llAtan2( float y, float x );

Returns a float that is the arctangent2 of y, x.

• float y
• float x

Similar to the arctangent(y/x) except it utilizes the signs of x & y to determine the quadrant and avoids division by zero. Returns zero if x and y are zero, returns PI/2 if x is zero and y is positive, returns -PI/2 if x is zero and y is negative.
The returned value is in the range [-PI, PI][1].


<lsl>default {

   float num1 = llFrand(100.0);
   float num2 = llFrand(100.0);
   llOwnerSay("y = " + (string)num1);
   llOwnerSay("x = " + (string)num2);
   llOwnerSay("The arctangent of y divided by x is " + (string)llAtan2(num1, num2));

}</lsl><lsl>//Function with input of a vector determining the position of a target and returning //a string with the literal compass-direction of that target towards your position //by Ramana Sweetwater 2009/01, any use allowed license :-) //corrected by Patrick Muggins

string compass (vector target) {

   vector source = llGetPos();
   list DIRS =["W","NW","N","NE","E","SE","S","SW","W"];
   integer index = llCeil(3.5 - (4 * llAtan2(target.y - source.y, target.x - source.x) / PI));
   return llList2String(DIRS, index);


/Compass QA

See Also


• llSin llAsin sine & inverse Sine
• llCos llAcos cosine & inverse cosine
• llTan tangent


•  Wikipedia:Atan2
•  Wikipedia:Inverse trigonometric function

Deep Notes

Search JIRA for related Issues


  1. ^ The ranges in this article are written in Interval Notation.


function float llAtan2( float y, float x );