Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Template:Main:Vector/Methods

Template page
Revision as of 01:46, 29 October 2024 by PenguinEncounter (talk | contribs) (Relocate operators)

Math operations

Mathematical operations that apply to all vectors, such as computing their length

length


Computes the length of a vector.

Arguments Return Type
length() number

lengthSquared


Computes the length of a vector, squared. Due to the nature of the length calculation, this is a little bit faster than length.

Arguments Return Type
lengthSquared() number

dot


Computes the dot product between two vectors. The argument must be the same type as the target vector.

Arguments Return Type
dot(Vector other) number

add


Adds the values from this vector and another vector of the same size, and writes them to this vector. To create a new instance from the sum, see + (operator).

Arguments Return Type
add(Vector other) self Vector

subtract


Subtracts the passed vector of the same size from this vector, and writes the result to this vector. To create a new instance from the difference, see - (operator).

Arguments Return Type
subtract(Vector other) self Vector

offset


Adds factor to all components of this vector. To create a new instance from the result, see + (operator) or - (operator).

Arguments Return Type
offset(number factor) self Vector

multiply


Multiplies vectors of the same size by multiplying their components. The result is written to this vector.

Arguments Return Type
multiply(Vector other) self Vector

Utility methods

copy


Creates a copy of this vector. Creating a copy will make a new Vector with the same size and values, but which is disconnected from the original. This means that methods like set or add which modify the vector they are called with will not modify copies.

Arguments Return Type
copy() Vector

set


Assigns the values from another vector of the same size to this vector in place. To create a new instance, see copy.

Arguments Return Type
set(Vector other) self Vector

Operators

Lua operators, such as +, -, and *, apply to vectors and have different results.

+ (operator)

With two vectors

Adds the values from this vector and another vector of the same size. The result is a new vector of the same size which holds the sum.

Left Right Result
Vector Vector Vector
local a = vec(1, 2, 3)
local b = vec(4, 4, 6)
print(a + b, a, b) -- {5, 6, 9}  {1, 2, 3}  {4, 4, 6}
With a vector and number
Operator is commutative and has the same result regardless of order.

The result is a new vector of the same size which holds the result of adding the number to all components of this vector.

Left Right Result
Vector number Vector
number Vector Vector

- (operator)

With two vectors

Subtracts the right vector from the left vector. The result is a new vector of the same size which holds the difference.

Left Right Result
Vector Vector Vector
local a = vec(1, 2, 3)
local b = vec(4, 4, 6)
print(b - a, a, b) -- {3, 2, 3}  {1, 2, 3}  {4, 4, 6}
With a vector and a number
Only applies when the number is on the right side of the operator.

Returns a new vector of the same size containing the result of subtracting the number from all components of the vector.

Left Right Result
Vector number Vector
With a number and a vector
Only applies when the number is on the left side of the operator.

Returns a new vector of the same size containing the result of negating all of the components of the vector, then adding the number. In effect, number - vector == (-vector) + number.

Left Right Result
number Vector Vector