Difference between revisions of "LlAtan2"

From Second Life Wiki
Jump to: navigation, search
(Add notation about range of return value)
m (Restore func_footnote overwritten by mistake)
Line 2: Line 2:
 
|func_id=3|func_sleep=0.0|func_energy=10.0
 
|func_id=3|func_sleep=0.0|func_energy=10.0
 
|func=llAtan2|sort=Atan2
 
|func=llAtan2|sort=Atan2
|func_footnote=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.
+
|func_footnote=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.<br />
 +
The returned value is in the range [-[[PI]], PI]
 
|p1_type=float|p1_name=y|p1_desc
 
|p1_type=float|p1_name=y|p1_desc
 
|p2_type=float|p2_name=x|p2_desc
 
|p2_type=float|p2_name=x|p2_desc
 
|return_type=float
 
|return_type=float
 
|return_text=that is the {{wikipedia|Atan2|arctangent2}} of y, x.
 
|return_text=that is the {{wikipedia|Atan2|arctangent2}} of y, x.
|func_footnote=The returned value is in the range [-[[PI]], PI]
 
 
|spec
 
|spec
 
|caveats
 
|caveats

Revision as of 06:01, 24 April 2009

Summary

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. Returns zero if x and y are zero.
The returned value is in the range [-PI, PI]

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>

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

Signature

function float llAtan2( float y, float x );