Vector

From GMod Wiki

Revision as of 17:25, 10 February 2011 by garry :D (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Object Methods

NewerClient.png Vector:ToScreen

NewerShared.png Vector:__add
NewerShared.png Vector:__div
NewerShared.png Vector:__eq
NewerShared.png Vector:__gc
NewerShared.png Vector:__index
NewerShared.png Vector:__mul
NewerShared.png Vector:__newindex
NewerShared.png Vector:__tostring
NewerShared.png Vector:__umn
NewerShared.png Vector:Add
NewerShared.png Vector:Angle
NewerShared.png Vector:Cross
NewerShared.png Vector:Distance
NewerShared.png Vector:Dot
NewerShared.png Vector:DotProduct
NewerShared.png Vector:GetNormal
NewerShared.png Vector:GetNormalized
NewerShared.png Vector:Length
NewerShared.png Vector:Length2D
NewerShared.png Vector:Length2DSqr
NewerShared.png Vector:LengthSqr
NewerShared.png Vector:Mul
NewerShared.png Vector:Normalize
NewerShared.png Vector:Rotate
NewerShared.png Vector:Sub
NewerShared.png Vector:Zero


Warning 64.pngThis page needs to be edited as it contains information that is unclear or incorrect. Improvement can be discussed on the talk page. Find more pages that need work here.
Details: None given.
Lua: Vector
Page white text.png Description:Gives a brief explanation of Vector library.
link=User:Merlzoth Original Author:Merlzoth
Calendar.png Created:1 December 2006

A vector, in the sense used in both Garry's Mod and this documentation, is a quantity represented by three numbers, which express distance from the origin along three directed, perpendicular lines that pass through the origin called the axes. In this setting, vectors can be used to represent position, velocity and rotation in space.

Points can be also represented as vectors from the origin.

Vector Mathematics

Reading components of an vector

 
Msg(tostring(vector.x)) //Prints X component of vector
Msg(tostring(vector.y)) //Prints Y component of vector
Msg(tostring(vector.z)) //Prints Z component of vector
 

Sum

The result of adding two vectors, a and b, is a vector from the tail of a to the head of b.

See Also: http://mathworld.wolfram.com/VectorAddition.html

Difference

The result of subtracting one vector from another, is a vector from the head of the subtrahend to the head of the minuend.

See Also: http://mathworld.wolfram.com/VectorDifference.html

Scalar Multiplication

Scalar multiplication is a way of scaling a vector. If the scalar is negative, the vector also undergoes a rotation of 180 degrees.

See Also: http://mathworld.wolfram.com/ScalarMultiplication.html

Division

Vectors can be divided by scalars, but the result of division by a vector is undefined.

Dot Product

The product of two vectors returns a scalar, with which the angle between two vectors can be calculated. To get the angle between the two vectors. you take the inverse cosine of the dot product divided by the product of the magnitudes of the two vectors.

See Also: http://mathworld.wolfram.com/DotProduct.html

Cross Product

The cross product of two vectors a and b is a pseudovector perpendicular to both a and b.

See Also: http://mathworld.wolfram.com/CrossProduct.html

Normalization

Not to be confused with the normal of a vector, normalization is the process whereby a vector is made to have unit length, while preserving its original direction. A vector with unit length is said to be a unit vector.

http://mathworld.wolfram.com/NormalVector.html

Code

Assignment

Example code:

 
local vector = Vector( 0, 0, 1 )
Msg( tostring( vector ) .. "\n" )
 

Operators

Addition

Main page: Vector._add

 
local a = Vector( 0, 0, 1 )
local b = Vector( 1, 1, 0 )
Msg( tostring( a + b ) .. "\n" )
 

Subtraction

Main page: Vector._sub

 
local a = Vector( 0, 0, 1 )
local b = Vector( 1, 1, 0 )
Msg( tostring( a - b ) .. "\n" )
 

Multiplication

Main page: Vector._mul

 
local vector = Vector( 0, 0, 1 )
Msg( tostring( vector * 10 ) .. "\n" )
 

Division

Main page: Vector._div

 
local vector = Vector( 0, 0, 1 )
Msg( tostring( vector / 10 ) .. "\n" )
 

Equality

Main page: Vector._eq

 
local a = Vector( 0, 0, 1 )
local b = Vector( 1, 0, 0 )
Msg( tostring( a == b and "Equal" or "Not Equal!" ) .. "\n" )
 

Methods

Add

Main page: Vector.Add

Angle

Main page: Vector.Angle

Cross

Main page: Vector.Cross

Returns the cross product of the vector with the argument. Example code:

 
local a = Vector( 0, 0, 1 )
local b = Vector( 1, 0, 0 )
Msg( tostring( a:Cross( b ) ) .. "\n" )
 

Distance

Main page: Vector.Distance

Dot

Main page: Vector.Dot

DotProduct

Main page: Vector.DotProduct

Returns the dot product of the vector with the argument.

 
local a = Vector( 0, 0, 1 )
local b = Vector( 1, 0, 0 )
Msg( tostring( a:DotProduct( b ) ) .. "\n" )
 

GetNormal

Main page: Vector.GetNormal

Returns the normal of the vector.

 
local vector = Vector( 0, 0, 1 )
Msg( tostring( vector:GetNormal() ) .. "\n" )
 

GetNormalized

Main page: Vector.GetNormalized

Returns the normalized vector.

 
local vector = Vector( 0, 0, 10 )
Msg( tostring( vector:GetNormalized() ) .. "\n" )
 

Length

Main page: Vector.Length

Returns the magnitude of the vector.

 
local vector = Vector( 0, 0, 10 )
Msg( tostring( vector:Length() ) .. "\n" );
 

Mul

Main page: Vector.Mul

Performs scalar multiplication on the vector and the argument.

 
local vector = Vector( 0, 0, 1 )
vector:Mul( 10 )
Msg( tostring( vector ) .. "\n" )
 

Normalize

Main page: Vector.Normalize

Normalizes the vector.

 
local vector = Vector( 0, 0, 10 )
vector:Normalize()
Msg( tostring( vector:GetNormalized() ) .. "\n" )
 

Sub

Main page: Vector.Sub

Personal tools
Namespaces
Variants
Actions
Navigation
Lua Scripting
Functions
Hooks
Toolbox