Vector2

2D Vector object with vector math library

  • Functions do not change this so they can be chained together

Constructor

new Vector2(xopt, yopt)

Create a 2D vector with the x and y passed in, can also be created with vec2()

Parameters:
NameTypeAttributesDefaultDescription
xnumber<optional>
0

X axis location

ynumber<optional>
0

Y axis location

Example
let a = new Vector2(2, 3); // vector with coordinates (2, 3)
let b = new Vector2;       // vector with coordinates (0, 0)
let c = vec2(4, 2);        // use the vec2 function to make a Vector2
let d = a.add(b).scale(5); // operators can be chained

Members

x

Properties
TypeDescription
number

X axis location

y

Properties
TypeDescription
number

Y axis location

Methods

add(v) → {Vector2}

Returns a copy of this vector plus the vector passed in

Parameters:
NameTypeDescription
vVector2

other vector

Returns:
Type: 
Vector2

angle() → {number}

Returns the clockwise angle of this vector, up is angle 0

Returns:
Type: 
number

area() → {number}

Returns the area this vector covers as a rectangle

Returns:
Type: 
number

arrayCheck(arraySize) → {boolean}

Returns true if this vector is within the bounds of an array size passed in

Parameters:
NameTypeDescription
arraySizeVector2
Returns:
Type: 
boolean

clampLength(lengthopt) → {Vector2}

Returns a new vector clamped to length passed in

Parameters:
NameTypeAttributesDefaultDescription
lengthnumber<optional>
1
Returns:
Type: 
Vector2

copy() → {Vector2}

Returns a new vector that is a copy of this

Returns:
Type: 
Vector2

cross(v) → {number}

Returns the cross product of this and the vector passed in

Parameters:
NameTypeDescription
vVector2

other vector

Returns:
Type: 
number

direction() → {number}

Returns the integer direction of this vector, corresponding to multiples of 90 degree rotation (0-3)

Returns:
Type: 
number

distance(v) → {number}

Returns the distance from this vector to vector passed in

Parameters:
NameTypeDescription
vVector2

other vector

Returns:
Type: 
number

distanceSquared(v) → {number}

Returns the distance squared from this vector to vector passed in

Parameters:
NameTypeDescription
vVector2

other vector

Returns:
Type: 
number

divide(v) → {Vector2}

Returns a copy of this vector divided by the vector passed in

Parameters:
NameTypeDescription
vVector2

other vector

Returns:
Type: 
Vector2

dot(v) → {number}

Returns the dot product of this and the vector passed in

Parameters:
NameTypeDescription
vVector2

other vector

Returns:
Type: 
number

floor() → {Vector2}

Returns a copy of this vector with each axis floored

Returns:
Type: 
Vector2

invert() → {Vector2}

Returns a copy of this vector that has been inverted

Returns:
Type: 
Vector2

isValid() → {boolean}

Checks if this is a valid vector

Returns:
Type: 
boolean

length() → {number}

Returns the length of this vector

Returns:
Type: 
number

lengthSquared() → {number}

Returns the length of this vector squared

Returns:
Type: 
number

lerp(v, percent) → {Vector2}

Returns a new vector that is p percent between this and the vector passed in

Parameters:
NameTypeDescription
vVector2

other vector

percentnumber
Returns:
Type: 
Vector2

multiply(v) → {Vector2}

Returns a copy of this vector times the vector passed in

Parameters:
NameTypeDescription
vVector2

other vector

Returns:
Type: 
Vector2

normalize(lengthopt) → {Vector2}

Returns a new vector in same direction as this one with the length passed in

Parameters:
NameTypeAttributesDefaultDescription
lengthnumber<optional>
1
Returns:
Type: 
Vector2

rotate(angle) → {Vector2}

Returns copy of this vector rotated by the clockwise angle passed in

Parameters:
NameTypeDescription
anglenumber
Returns:
Type: 
Vector2

scale(s) → {Vector2}

Returns a copy of this vector scaled by the vector passed in

Parameters:
NameTypeDescription
snumber

scale

Returns:
Type: 
Vector2

set(xopt, yopt) → {Vector2}

Sets values of this vector and returns self

Parameters:
NameTypeAttributesDefaultDescription
xnumber<optional>
0

X axis location

ynumber<optional>
0

Y axis location

Returns:
Type: 
Vector2

setAngle(angleopt, lengthopt) → {Vector2}

Sets this vector with clockwise angle and length passed in

Parameters:
NameTypeAttributesDefaultDescription
anglenumber<optional>
0
lengthnumber<optional>
1
Returns:
Type: 
Vector2

setDirection(directionopt, lengthopt)

Set the integer direction of this vector, corresponding to multiples of 90 degree rotation (0-3)

Parameters:
NameTypeAttributesDefaultDescription
directionnumber<optional>
lengthnumber<optional>
1

subtract(v) → {Vector2}

Returns a copy of this vector minus the vector passed in

Parameters:
NameTypeDescription
vVector2

other vector

Returns:
Type: 
Vector2

toString(digits) → {string}

Returns this vector expressed as a string

Parameters:
NameTypeDefaultDescription
digitsnumber3

precision to display

Returns:
Type: 
string