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.