Module vec2

vec2: A simple 2-component vector

Functions

vec2 (x, y) Create a new vector with components x, y: (Can also be used to duplicate a vector: vec2(v))
copy (v) Create a copy of a vector:
vec2:set (x, y) Set the components of a vector:
fromAngle (angle) Create a unit (length 1) vector from an angle
fromPolar (length, angle) Create a vector from a polar form length and angle
vec2:add (v) Add a vector (or number) to self (in-place)
addnew (a, b) Add two vectors (or numbers) to create a new vector
vec2:sub (v) Subtract a vector (or number) to self (in-place)
subnew (a, b) Subtract two vectors (or numbers) to create a new vector
vec2:mul (v) Multiply a vector (or number) to self (in-place)
mulnew (a, b) Multiply two vectors (or numbers) to create a new vector
vec2:div (v) Divide a vector (or number) to self (in-place)
divnew (a, b) Divide two vectors (or numbers) to create a new vector
vec2:pow (v) Raise to power a vector (or number) to self (in-place)
pownew (a, b) Raise to power two vectors (or numbers) to create a new vector
vec2:mod (v) Calculate modulo a vector (or number) to self (in-place)
modnew (a, b) Calculate modulo two vectors (or numbers) to create a new vector
vec2:min (v) Calculate minimum of elements (in-place)
minnew (a, b) Calculate minimum of elements to create a new vector
vec2:max (v) Calculate maximum of elements (in-place)
maxnew (a, b) Calculate maximum of elements to create a new vector
vec2:clip (lo, hi) Constrain vector to range (in-place)
vec2:clip (lo, hi) Constrain vector to range to create a new vector
vec2:relativewrap (dimx, dimy) Determine shortest relative vector in a toroidal space
vec2:relativewrapnew (dimx, dimy) Create new vector as shortest relative vector in a toroidal space
vec2:lerp (v, f) interpolate from self to v by factor of f
lerpnew (a, b, f) create a vector from the linear interpolation of two vectors:
vec2:normalize () set the length of the vector to 1 (unit vector) (randomized direction if self length was zero)
vec2:normalizenew () return a normalized copy of the vector (randomized direction if self length was zero)
vec2:limit (maximum) Impose a maximum magnitude Rescales vector if greater than maximum
vec2:limitnew (maximum) Create a copy of a vector, limited to a maximum magnitude Rescales vector if greater than maximum
vec2:setangle (a) Rotate a vector to a specific angle:
vec2:setanglenew (a) Return a copy rotated to a specific angle:
vec2:setmag (m) Rescale a vector to a specific magnitude:
vec2:setmagnew (m) Return a vector copy rescaled to a specific magnitude:
vec2:rotate (angle) Rotate a vector by an angle
vec2:rotatenew (angle) Create a vector by rotating a vector by an angle
random (mag) Create a new vector in a uniformly random direction:
vec2:randomize (mag) Set to a vector of magnitude 1 in a uniformly random direction:
vec2:length () return the length of a vector (Can also use #vector)
vec2:angle () Return the angle to the vector (direction)
vec2:polar () Return the magnitude and angle (polar form):
dot (a, b) return the dot product of two vectors:
vec2:distance (p) The distance between two vectors (two points) (The relative distance from self to p)
anglebetween (a, b) The angle between two vectors (two points) (The relative angle from self to v)


Functions

vec2 (x, y)
Create a new vector with components x, y: (Can also be used to duplicate a vector: vec2(v))

Parameters:

  • x number or vector (optional, default 0)
  • y number (optional, default 0)
copy (v)
Create a copy of a vector:

Parameters:

  • v vector
vec2:set (x, y)
Set the components of a vector:

Parameters:

  • x component
  • y component

Returns:

    self
fromAngle (angle)
Create a unit (length 1) vector from an angle

Parameters:

  • angle in radians
fromPolar (length, angle)
Create a vector from a polar form length and angle

Parameters:

  • length magnitude
  • angle in radians
vec2:add (v)
Add a vector (or number) to self (in-place)

Parameters:

  • v number or vector to add

Returns:

    self
addnew (a, b)
Add two vectors (or numbers) to create a new vector

Parameters:

  • a vector or number
  • b vector or number

Returns:

    new vector
vec2:sub (v)
Subtract a vector (or number) to self (in-place)

Parameters:

  • v number or vector to sub

Returns:

    self
subnew (a, b)
Subtract two vectors (or numbers) to create a new vector

Parameters:

  • a vector or number
  • b vector or number

Returns:

    new vector
vec2:mul (v)
Multiply a vector (or number) to self (in-place)

Parameters:

  • v number or vector to mul

Returns:

    self
mulnew (a, b)
Multiply two vectors (or numbers) to create a new vector

Parameters:

  • a vector or number
  • b vector or number

Returns:

    new vector
vec2:div (v)
Divide a vector (or number) to self (in-place)

Parameters:

  • v number or vector to div

Returns:

    self
divnew (a, b)
Divide two vectors (or numbers) to create a new vector

Parameters:

  • a vector or number
  • b vector or number

Returns:

    new vector
vec2:pow (v)
Raise to power a vector (or number) to self (in-place)

Parameters:

  • v number or vector to pow

Returns:

    self
pownew (a, b)
Raise to power two vectors (or numbers) to create a new vector

Parameters:

  • a vector or number
  • b vector or number

Returns:

    new vector
vec2:mod (v)
Calculate modulo a vector (or number) to self (in-place)

Parameters:

  • v number or vector to mod

Returns:

    self
modnew (a, b)
Calculate modulo two vectors (or numbers) to create a new vector

Parameters:

  • a vector or number
  • b vector or number

Returns:

    new vector
vec2:min (v)
Calculate minimum of elements (in-place)

Parameters:

  • v number or vector limit

Returns:

    self
minnew (a, b)
Calculate minimum of elements to create a new vector

Parameters:

  • a vector or number
  • b vector or number

Returns:

    new vector
vec2:max (v)
Calculate maximum of elements (in-place)

Parameters:

  • v number or vector limit

Returns:

    self
maxnew (a, b)
Calculate maximum of elements to create a new vector

Parameters:

  • a vector or number
  • b vector or number

Returns:

    new vector
vec2:clip (lo, hi)
Constrain vector to range (in-place)

Parameters:

  • lo vector or number minimum value
  • hi vector or number minimum value

Returns:

    self
vec2:clip (lo, hi)
Constrain vector to range to create a new vector

Parameters:

  • lo vector or number minimum value
  • hi vector or number minimum value

Returns:

    new vector
vec2:relativewrap (dimx, dimy)
Determine shortest relative vector in a toroidal space

Parameters:

  • dimx width of space (optional, default 1)
  • dimy height of space (optional, default dimx)

Returns:

    self
vec2:relativewrapnew (dimx, dimy)
Create new vector as shortest relative vector in a toroidal space

Parameters:

  • dimx width of space (optional, default 1)
  • dimy height of space (optional, default dimx)

Returns:

    new vector
vec2:lerp (v, f)
interpolate from self to v by factor of f

Parameters:

  • v vector
  • f interpolation factor from self to v (0 = none, 1 = full)

Returns:

    self
lerpnew (a, b, f)
create a vector from the linear interpolation of two vectors:

Parameters:

  • a vector
  • b vector
  • f interpolation factor from a to b (0 = none, 1 = full)

Returns:

    new vector
vec2:normalize ()
set the length of the vector to 1 (unit vector) (randomized direction if self length was zero)

Returns:

    self
vec2:normalizenew ()
return a normalized copy of the vector (randomized direction if self length was zero)

Returns:

    vector of length 1 (unit vector)
vec2:limit (maximum)
Impose a maximum magnitude Rescales vector if greater than maximum

Parameters:

  • maximum maximum magnitude of vector

Returns:

    self
vec2:limitnew (maximum)
Create a copy of a vector, limited to a maximum magnitude Rescales vector if greater than maximum

Parameters:

  • maximum maximum magnitude of vector

Returns:

    new vector
vec2:setangle (a)
Rotate a vector to a specific angle:

Parameters:

  • a new angle

Returns:

    self
vec2:setanglenew (a)
Return a copy rotated to a specific angle:

Parameters:

  • a new angle

Returns:

    new vector
vec2:setmag (m)
Rescale a vector to a specific magnitude:

Parameters:

  • m new magnitude

Returns:

    self
vec2:setmagnew (m)
Return a vector copy rescaled to a specific magnitude:

Parameters:

  • m new magnitude

Returns:

    new vector
vec2:rotate (angle)
Rotate a vector by an angle

Parameters:

  • angle in radians

Returns:

    self
vec2:rotatenew (angle)
Create a vector by rotating a vector by an angle

Parameters:

  • angle in radians

Returns:

    new vector
random (mag)
Create a new vector in a uniformly random direction:

Parameters:

  • mag magnitude (optional, default 1)

Returns:

    new vector
vec2:randomize (mag)
Set to a vector of magnitude 1 in a uniformly random direction:

Parameters:

  • mag magnitude (optional, default 1)

Returns:

    self
vec2:length ()
return the length of a vector (Can also use #vector)

Returns:

    length
vec2:angle ()
Return the angle to the vector (direction)

Returns:

    angle (in radians)
vec2:polar ()
Return the magnitude and angle (polar form):

Returns:

    length, angle (in radians)
dot (a, b)
return the dot product of two vectors:

Parameters:

  • a vector
  • b vector

Returns:

    dot product
vec2:distance (p)
The distance between two vectors (two points) (The relative distance from self to p)

Parameters:

  • p target to measure distance to

Returns:

    distance
anglebetween (a, b)
The angle between two vectors (two points) (The relative angle from self to v)

Parameters:

  • a vector to measure angle between
  • b vector to measure angle between

Returns:

    distance
generated by LDoc 1.3