LlAtan2

From Second Life Wiki

Jump to: navigation, search

Contents

Summary

Function: float llAtan2( float y, float x );
3 Function ID
0.0 Delay
10.0 Energy

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].

Examples

default
{
  state_entry()
  {
    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));
  }
}
//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

Functions

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

Articles

•  Wikipedia:Atan2
•  Wikipedia:Inverse trigonometric function

Deep Notes

Search JIRA for related Issues

Footnotes

  1. ^ The ranges in this article are written in Interval Notation.
This article wasn't helpful for you? Maybe the related article at the LSL Wiki is able to bring enlightenment.
Personal tools