Difference between revisions of "LlVecMag"
Jump to navigation
Jump to search
Lady Sumoku (talk | contribs) m (Replaced old <LSL> block with <source lang="lsl2">) |
|||
(16 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{LSL_Function | ||
|func= | |func=llVecMag | ||
|func_id= | |func_id=12|func_sleep=0.0|func_energy=10.0 | ||
|func_sleep=0.0 | |||
|func_energy=10.0 | |||
|func_footnote | |func_footnote | ||
|p1_type=vector | |p1_type=vector|p1_name=vec|p1_desc | ||
|p1_name=vec | |||
|p1_desc | |||
|return_type=float | |return_type=float | ||
|return_text=that is the magnitude of the vector (the distance from vec to | |return_text=that is the magnitude of the vector (the undirected non-negative distance from {{LSLP|vec}} to {{LSL VR|0.0|0.0|0.0}}). | ||
|spec | |spec | ||
|caveats | |caveats | ||
|examples= | |examples= | ||
< | <source lang="lsl2"> | ||
default { | default { | ||
state_entry() | state_entry() | ||
{ | { | ||
vector input = <1.0,2.0,3.0>; | vector input = <1.0,2.0,3.0>; | ||
llSay(0,"The magnitude of "+(string)input+" is | llSay(0,"The magnitude of "+(string)input+" is "+(string)llVecMag(input) + "."); | ||
} | } | ||
} | } | ||
</ | </source> | ||
|helpers | |helpers | ||
| | |also_functions= | ||
| | {{LSL DefineRow||[[llVecNorm]]|The vector normal}} | ||
|notes | {{LSL DefineRow||[[llVecDist]]|The distance between two vectors}} | ||
|also_events | |||
|also_tests | |||
|also_articles | |||
|notes= | |||
* Mathematically the formula for vector magnitude is | |||
** <code>[[llSqrt]](vec.x * vec.x + vec.y * vec.y + vec.z * vec.z)</code> | |||
* Knowing this, there are ways to circumvent llVecMag for more efficient code. | |||
** vec*vec < 16.0 is over twice as fast as llVecMag(vec) < 4.0. | |||
** vec*vec < (dist*dist) is about twice as fast as llVecMag(vec) < dist. | |||
** This can work in many other ways, too, with other comparisons. | |||
|permission | |||
|negative_index | |||
|cat1=Math/3D | |||
|cat2=Vector | |||
|cat3 | |||
|cat4 | |||
}} | }} | ||
Latest revision as of 12:00, 22 January 2015
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: float llVecMag( vector vec );12 | Function ID |
0.0 | Forced Delay |
10.0 | Energy |
Returns a float that is the magnitude of the vector (the undirected non-negative distance from vec to <0.0, 0.0, 0.0>).
• vector | vec |
Caveats
Examples
default {
state_entry()
{
vector input = <1.0,2.0,3.0>;
llSay(0,"The magnitude of "+(string)input+" is "+(string)llVecMag(input) + ".");
}
}
Notes
- Mathematically the formula for vector magnitude is
llSqrt(vec.x * vec.x + vec.y * vec.y + vec.z * vec.z)
- Knowing this, there are ways to circumvent llVecMag for more efficient code.
- vec*vec < 16.0 is over twice as fast as llVecMag(vec) < 4.0.
- vec*vec < (dist*dist) is about twice as fast as llVecMag(vec) < dist.
- This can work in many other ways, too, with other comparisons.