# vector

A basic 3D vector type and some common vector operations. This may be useful when working with coordinates in Minecraft's world (such as those from the gps API).

An introduction to vectors can be found on Wikipedia.

### Changes

• New in version 1.31
new(x, y, z) Construct a new Vector with the given coordinates.
new(x, y, z)Source

Construct a new Vector with the given coordinates.

### Parameters

1. x number The X coordinate or direction of the vector.
2. y number The Y coordinate or direction of the vector.
3. z number The Z coordinate or direction of the vector.

### Returns

1. Vector The constructed vector.

### Vector

A 3-dimensional vector, with `x`, `y`, and `z` values.

This is suitable for representing both position and directional vectors.

### Parameters

1. o Vector The second vector to add.

### Returns

1. Vector The resulting vector

### Usage

• `v1:add(v2)`
• `v1 + v2`
Vector:sub(o)Source

Subtracts one vector from another.

### Parameters

1. o Vector The vector to subtract.

### Returns

1. Vector The resulting vector

### Usage

• `v1:sub(v2)`
• `v1 - v2`
Vector:mul(m)Source

Multiplies a vector by a scalar value.

### Parameters

1. m number The scalar value to multiply with.

### Returns

1. Vector A vector with value `(x * m, y * m, z * m)`.

### Usage

• `v:mul(3)`
• `v * 3`
Vector:div(m)Source

Divides a vector by a scalar value.

### Parameters

1. m number The scalar value to divide by.

### Returns

1. Vector A vector with value `(x / m, y / m, z / m)`.

### Usage

• `v:div(3)`
• `v / 3`
Vector:unm()Source

Negate a vector

### Returns

1. Vector The negated vector.

### Usage

• `-v`
Vector:dot(o)Source

Compute the dot product of two vectors

### Parameters

1. o Vector The second vector to compute the dot product of.

### Returns

1. Vector The dot product of `self` and `o`.

### Usage

• `v1:dot(v2)`
Vector:cross(o)Source

Compute the cross product of two vectors

### Parameters

1. o Vector The second vector to compute the cross product of.

### Returns

1. Vector The cross product of `self` and `o`.

### Usage

• `v1:cross(v2)`
Vector:length()Source

Get the length (also referred to as magnitude) of this vector.

### Returns

1. number The length of this vector.
Vector:normalize()Source

Divide this vector by its length, producing with the same direction, but of length 1.

### Returns

1. Vector The normalised vector

### Usage

• `v:normalize()`
Vector:round([tolerance])Source

Construct a vector with each dimension rounded to the nearest value.

### Parameters

1. tolerance? number The tolerance that we should round to, defaulting to 1. For instance, a tolerance of 0.5 will round to the nearest 0.5.

### Returns

1. Vector The rounded vector.
Vector:tostring()Source

Convert this vector into a string, for pretty printing.

### Returns

1. string This vector's string representation.

### Usage

• `v:tostring()`
• `tostring(v)`
Vector:equals(other)Source

Check for equality between two vectors.

### Parameters

1. other Vector The second vector to compare to.

### Returns

1. boolean Whether or not the vectors are equal.