Difference between revisions of "LlVecDist"
Jump to navigation
Jump to search
m |
(Added some stuff to notes. Perhaps someone (Strife :D?) could make sure they're okay to add?) |
||
Line 35: | Line 35: | ||
** [[llVecMag]]( vec_a - vec_b ) | ** [[llVecMag]]( vec_a - vec_b ) | ||
** [[llSqrt]]( (vec_b.x - vec_a.x) * (vec_b.x - vec_a.x) + (vec_b.y - vec_a.y) * (vec_b.y - vec_a.y) + (vec_b.z - vec_a.z) * (vec_b.z - vec_a.z) ) | ** [[llSqrt]]( (vec_b.x - vec_a.x) * (vec_b.x - vec_a.x) + (vec_b.y - vec_a.y) * (vec_b.y - vec_a.y) + (vec_b.z - vec_a.z) * (vec_b.z - vec_a.z) ) | ||
* Knowing this, there are ways to circumvent llVecDist for more efficient code. | |||
** For example, vector v3 = (v1-v2); v3*v3 < (f*f); is over twice as fast as llVecDist(v1,v2) < f; | |||
|cat1=Math/3D | |cat1=Math/3D | ||
|cat2=Vector | |cat2=Vector |
Revision as of 18:19, 20 July 2012
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: float llVecDist( vector vec_a, vector vec_b );14 | Function ID |
0.0 | Forced Delay |
10.0 | Energy |
Returns a float that is the undirected nonnegative distance between vec_a and vec_b.
• vector | vec_a | – | Any valid vector | |
• vector | vec_b | – | Any valid vector |
Caveats
Examples
<lsl> default {
state_entry() { vector input_1 = <1.0,2.0,3.0>; vector input_2 = <3.0,2.0,1.0>; llOwnerSay("The distance between " + (string) input_1 + " and " + (string) input_2 + " is: "+(string)llVecDist(input_1, input_2) ); }
} </lsl>
Video Tutorial
<videoflash type="youtube">D0WvH58IWEo|640|385</videoflash>Notes
- Mathematically equivalent to:
- Knowing this, there are ways to circumvent llVecDist for more efficient code.
- For example, vector v3 = (v1-v2); v3*v3 < (f*f); is over twice as fast as llVecDist(v1,v2) < f;