Difference between revisions of "LlSin"
Jump to navigation
Jump to search
All Issues ~ Search JIRA for related Bugs
(11 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{LSL_Function | {{LSL_Function | ||
|inject-2={{LSL_Function/angle|theta}} | |||
|func=llSin|sort=Sin | |func=llSin|sort=Sin | ||
|func_id=0|func_sleep=0.0|func_energy=10.0 | |func_id=0|func_sleep=0.0|func_energy=10.0 | ||
|func_footnote | |func_footnote | ||
|p1_type=float | |p1_type=float|p1_name=theta | ||
|p1_name=theta | |||
|return_type=float | |return_type=float | ||
|return_text=that is the sine of theta. | |return_text=that is the sine of {{LSLP|theta}}. | ||
|spec | |spec | ||
|caveats | |caveats=Because of IEE754 on floats , llSin(PI) returns -8.742278E-8 ( hex : 0xB3BBBD2E ) and not 0.0 . The error is cumulative with multiples of PI : For instance llSin(100000.0*PI) = 0.015890 when the result should be 0.0 | ||
|constants | |constants | ||
|examples | |examples=<source lang="lsl2">// Touch the object with this script in it to see the sine of random numbers! | ||
default | |||
{ | |||
touch_start(integer num) | |||
{ | |||
float r = llFrand(TWO_PI); | |||
llOwnerSay("The sine of " + (string)r + " in radians or " + (string)(r * RAD_TO_DEG) + " in degrees is " + (string)llSin(r)); | |||
} | |||
}</source> | |||
|helpers | |helpers | ||
|also_functions | |also_functions= | ||
{{LSL DefineRow||[[llAsin]]|inverse Sine}} | |||
{{LSL DefineRow|[[llCos]]|[[llAcos]]|cosine & inverse cosine}} | |||
{{LSL DefineRow|[[llTan]]|[[llAtan2]]|tangent & inverse tangent}} | |||
|also_events | |also_events | ||
|also_tests | |also_tests |
Latest revision as of 15:11, 14 September 2015
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: float llSin( float theta );0 | Function ID |
0.0 | Forced Delay |
10.0 | Energy |
Returns a float that is the sine of theta.
• float | theta | – | angle expressed in radians |
Caveats
Because of IEE754 on floats , llSin(PI) returns -8.742278E-8 ( hex : 0xB3BBBD2E ) and not 0.0 . The error is cumulative with multiples of PI : For instance llSin(100000.0*PI) = 0.015890 when the result should be 0.0
Examples
// Touch the object with this script in it to see the sine of random numbers!
default
{
touch_start(integer num)
{
float r = llFrand(TWO_PI);
llOwnerSay("The sine of " + (string)r + " in radians or " + (string)(r * RAD_TO_DEG) + " in degrees is " + (string)llSin(r));
}
}