Skip to main content

Vector2

A two dimensional vector

Usage​

import {Vector2} from '@math.gl/core';
const vector = new Vector2(1, 1);

Inheritance​

Vector2 extends Vector extends MathArray extends Array

Many commonly used Vector2 methods are inherited from Vector and MathArray:

  • Vector2.clone()
  • Vector2.copy(array)
  • Vector2.set(...args)
  • Vector2.fromArray(array, offset = 0)
  • Vector2.toString()
  • Vector2.toArray(array = [], offset = 0)
  • Vector2.equals(array)
  • Vector2.exactEquals(array)
  • Vector2.validate(array = this)
  • Vector2.check(array = this)
  • Vector2.normalize()

Also note that Vector2 is a subclass of the built in JavaScript Array and can thus be used wherever an Array is expected. It can e.g. supplied as a parameter to any function expecting an Array.

Members​

x, y​

Gets or sets element 0 or 1 respectively

constructor​

Creates a new, empty Vector2, or copies an existing Vector2

constructor((x = 0), (y = 0));
constructor([x, y]);

set​

set(x, y)

add​

Add zero or more vectors to current vector.

add(...vectors)

subtract​

Subtract zero or more vectors from current vector

subtract(...vectors)

multiply​

Multiply zero or more vectors with current vector

multiply(...vectors)

divide​

Divide zero or more vectors with current vector

divide(...vectors)

scale​

scale(scale)

scaleAndAdd​

scaleAndAdd(vector, scale)

negate​

negate()

normalize​

normalize()

dot​

dot(vector)

lerp​

lerp(vector, coeff)

horizontalAngle​

Calculates counterclockwise angle in radians starting from positive x axis

horizontalAngle()

Note: returns Math.atan2(this.y, this.x)

verticalAngle​

Calculates clockwise angle in radians starting from positive y axis

verticalAngle()

Note: returns Math.atan2(this.x, this.y)

transform(matrix4 : Number[16]) : Vector4​

Equivalent to transformAsPoint.

transformAsPoint(matrix4 : Number[16]) : Vector4​

Transforms this vector by the provided 4x4 matrix as a point (i.e includes translations).

Note: Implicitly extends the vector to [x, y, 0, 1] before applying the 4x4 transformation.

transformAsVector(matrix4 : Number[16]) : Vector4​

Transforms this vector by the provided 4x4 matrix as a vector (i.e does not include translations).

Note: Implicitly extends the vector to [x, y, 0, 0] before applying the 4x4 transformation.

transformByMatrix3(matrix3 : Number[9]) : Vector4​

Transforms this vector by the provided 3x3 matrix.

transformByMatrix2x3(matrix2 : Number[6]) : Vector4​

Transforms this vector by the provided 2x3 matrix (A pure 2D transform that can incorporate translations).

transformByMatrix2(matrix2 : Number[4]) : Vector4​

Transforms this vector by the provided 2x2 matrix.