llAtan2
Revision as of 10:09, 4 June 2010 by Strife Onizuka (talk | contribs)
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: float llAtan2( float y, float x );0.0 | Forced 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. 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
target -= llGetPos(); 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);
}</lsl>
/Compass QA