llAtan2
Revision as of 07:01, 24 April 2009 by MasterOf Perl (talk | contribs) (Restore func_footnote overwritten by mistake)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: float llAtan2( float y, float x );3 | Function ID |
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]
Caveats
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) {
vector me = llGetPos(); float distance = llVecDist(me, target); list DIRS =["W","NW","N","NE","E","SE","S","SW","W"]; return llList2String(DIRS,llCeil(4.5-((4*llAtan2((target.y-me.y)/distance,(target.x-me.x)/distance))/PI)));}</lsl>