Difference between revisions of "LlSin"
Jump to navigation
Jump to search
All Issues ~ Search JIRA for related Bugs
(23 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{LSL_Function | ||
|inject-2={{LSL_Function/angle|theta}} | |||
|func=llSin|sort=Sin | |||
|func_id=0|func_sleep=0.0|func_energy=10.0 | |||
| | |func_footnote | ||
| | |p1_type=float|p1_name=theta | ||
|return_type=float | |||
|return_text=that is the sine of {{LSLP|theta}}. | |||
|spec | |||
|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 | |||
| | |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 | ||
| | |also_functions= | ||
{{LSL DefineRow||[[llAsin]]|inverse Sine}} | |||
{{LSL DefineRow|[[llCos]]|[[llAcos]]|cosine & inverse cosine}} | |||
= | {{LSL DefineRow|[[llTan]]|[[llAtan2]]|tangent & inverse tangent}} | ||
|also_events | |||
|also_tests | |||
|also_articles | |||
|notes | |||
| | |permission | ||
| | |negative_index | ||
|cat1 | |||
|cat2 | |||
< | |cat3 | ||
|cat4 | |||
|cat5=Math/Trigonometry | |||
}} | |||
</ | |||
| | |||
| | |||
| | |||
| | |||
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));
}
}