Difference between revisions of "LlVecMag"

From Second Life Wiki
Jump to: navigation, search
m
(Added some stuff to notes. Perhaps someone (Strife :D?) could make sure they're okay to add?)
Line 28: Line 28:
 
* Mathematically the formula for vector magnitude is
 
* Mathematically the formula for vector magnitude is
 
**  <code>[[llSqrt]](vec.x * vec.x + vec.y * vec.y + vec.z * vec.z)</code>
 
**  <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
 
|permission
 
|negative_index
 
|negative_index

Revision as of 17:55, 20 July 2012

Summary

Function: float llVecMag( vector vec );

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

Examples

<lsl> default {

   state_entry()
   {
       vector input = <1.0,2.0,3.0>;
       llSay(0,"The magnitude of "+(string)input+" is "+(string)llVecMag(input) + ".");
   }

}

</lsl>

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.

See Also

Functions

•  llVecNorm The vector normal
•  llVecDist The distance between two vectors

Deep Notes

Search JIRA for related Issues

Signature

function float llVecMag( vector vec );