llAcos
		
		
		
		Jump to navigation
		Jump to search
		
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials | 
Summary
Function: float llAcos( float val );| 0.0 | Forced Delay | 
| 10.0 | Energy | 
Returns a float that is the arccosine in radians of val
| • float | val | – | must fall in the range [-1.0, 1.0] | 
The returned value is in the range [0.0, PI][1], or NaN signifying a complex result when the parameter is out of range.
Caveats
- Triggers a Math Error for complex results if not compiled in Mono.
Examples
//  This example exercises the full valid range of argument from -1.0 to +1.0
default
{
    touch_start(integer num_detected)
    {
        float random = llFrand(2.0) - 1.0;
        llOwnerSay("The arccosine of " + (string)random + " is " + (string)llAcos(random));
    }
}
//An example for the Law of Cosines to calculate any angle of a triangle from 3 known side lengths.
default
{
    touch_start(integer num_detected)
    {        
        vector t=< llFrand(9.0)+1.0 , llFrand(9.0)+1.0 , llFrand(9.0)+1.0 >; //the 3 values of this vector are used to set the lengths of 3 sides of a triangle.
        float anglexy=llAcos( (t.x*t.x+t.y*t.y-(t.z*t.z)) / ( 2*t.x*t.y) ) //Law Of Cosines
        llOwnerSay("Using the Law Of Cosines, the angle of a triangle between side a="+(string)t.x+"and side b="+(string)t.y+"is = "+(string)anglexy+" radians="+(string)(anglexy*RAD_TO_DEG)+"° and that angle is not on side c="+(string)t.z);
    }
}
See Also
Deep Notes
Footnotes
- ^ The ranges in this article are written in Interval Notation.
| Signature | 
|---|
| function float llAcos( float val ); | 
