# LlAtan2

 LSL Portal

## Contents

Function: float llAtan2( float y, float x );
 3 Function ID 0 Forced Delay 10 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. Returns zero if x and y are zero.
The returned value is in the range [-PI, PI][1].

## Examples

<lsl>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));
}
```

}</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 :-)

string compass (vector target) {//-1.2732395447351 == -8/TWO_PI

```   if(target -= llGetPos())//Have we arrived?
{//We have not arrived.
list DIRS = [ "E", "SE", "S", "SW", "W", "NW", "N", "NE" ];
integer index = llRound((llAtan2(target.y, target.x) * -1.2732395447351)) % 8;
return llList2String(DIRS, index);
}
return "X";//we have arrived! X marks the spot.
```

}</lsl>

/Compass QA

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

#### Signature

```function float llAtan2( float y, float x );
```