Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Vector

Hierarchy

  • Vector

Index

Constructors

constructor

  • example
    const vec = new Vector(1, 2);
    

    Parameters

    • x: number
    • y: number

    Returns Vector

  • example
    const vec = new Vector({x: 1, y: 2});
    
    example
    const vec = new Vector(anotherVec);
    

    Parameters

    Returns Vector

Properties

x

x: number

y

y: number

Methods

add

  • Add x and y components of another vector

    example
    vec.add({x: 1,y: 1});
    
    example
    vec.add(anotherVec);
    

    Parameters

    Returns Vector

  • Add scalar to x and y components

    example
    vec.add(1);
    

    Parameters

    • scalar: number

    Returns Vector

addX

  • Add value to the x component

    example
    vec.addX(1);
    

    Parameters

    • x: number

    Returns Vector

addY

  • Add value to the y component

    example
    vec.addY(1);
    

    Parameters

    • y: number

    Returns Vector

angle

  • angle(degrees?: boolean): number
  • Get the angle of rotation of the vector

    example
    vec.angle();
    
    example
    vec.angle(true);
    

    Parameters

    • Optional degrees: boolean

      return angle in degrees instead of radians

    Returns number

    angle in radians, or in degrees if degrees param is true

angleBetween

  • angleBetween(point: IPoint, degrees?: boolean): number
  • Get the angle between two vectors

    example
    vec.angleBetween({x: 1,y: 1});
    
    example
    vec.angleBetween(anotherVec);
    
    example
    vec.angleBetween(anotherVec, true);
    

    Parameters

    • point: IPoint
    • Optional degrees: boolean

      return angle in degrees instead of radians

    Returns number

    angle in radians, or in degrees if degrees param is true

clone

  • Create a new vector using x and y components of the vector

    example
    const oldVec = new Vector(1, 2);
    const newVec = oldVec.clone();
    oldVec === newVec
    // false
    oldVec.eq(newVec)
    // true

    Returns Vector

    new Vector instance

cross

  • The cross product of 2D vectors results in a 3D vector with only a z component.

    example
    vec.cross({x:1,y:1});
    
    example
    vec.cross(anotherVec);
    

    Parameters

    Returns number

    the magnitude of the z value

dist

  • Get the Euclidean distance between two vectors

    example
    vec.dist({x:1,y:1});
    
    example
    vec.dist(anotherVec);
    

    Parameters

    Returns number

distSq

  • Get the square of the Euclidean distance between two vectors.

    remarks

    Performs faster than dist(), because there is no Math.sqrt involved

    example
    vec.distSq({x:1,y:1});
    
    example
    vec.distSq(anotherVec);
    
    example
    Math.sqrt(vec.distSq(anotherVec)) === vec.dist(anotherVec);
    // true

    Parameters

    Returns number

div

  • Divide x and y components by x and y components of another vector, e.g. v1.x / v2.x, v1.y / v2.y

    example
    vec.div({x: 1, y: 2});
    
    example
    vec.div(anotherVec);
    

    Parameters

    Returns Vector

  • Divide x and y components by a scalar

    example
    vec.div(2);
    

    Parameters

    • scalar: number

    Returns Vector

divX

  • Divide the x component by a scalar

    example
    vec.divX(2);
    

    Parameters

    • scalar: number

    Returns Vector

divY

  • Divide the y component by a scalar

    example
    vec.divY(2);
    

    Parameters

    • scalar: number

    Returns Vector

dot

eq

  • Compare x and y components with another vector

    example
    Vector.create(1, 2).eq({x:1,y:2});
    // true
    example
    Vector.create(1, 1).eq(Vector.create(1, 2));
    // false

    Parameters

    Returns boolean

    true if x and y components are equal, false otherwise

length

  • length(): number

lengthSq

  • lengthSq(): number

limit

  • Limit the magnitude of the vector

    example
    vec.limit(1);
    

    Parameters

    • max: number

    Returns Vector

limitX

  • Limit the x component of the vector

    example
    vec.limitX(1);
    
    example
    Vector.create(10, 1).limitX(5).x;
    // 5
    example
    Vector.create(10, 1).limitX(15).x;
    // 10

    Parameters

    • max: number

    Returns Vector

limitY

  • Limit the y component of the vector

    example
    vec.limitY(1);
    
    example
    Vector.create(1, 10).limitY(5).y;
    // 5
    example
    Vector.create(1, 10).limitY(15).y;
    // 10

    Parameters

    • max: number

    Returns Vector

mul

  • Multiple x and y components by a scalar

    example
    vec.mul(2);
    

    Parameters

    • scalar: number

    Returns Vector

  • Multiple x and y components by x and y components of another vector, e.g. v1.x * v2.x, v1.y * v2.y

    example
    vec.mul({x: 1, y: 2});
    
    example
    vec.mul(anotherVec);
    

    Parameters

    Returns Vector

mulX

  • Multiple the x component by a scalar

    example
    vec.mulX(2);
    

    Parameters

    • scalar: number

    Returns Vector

mulY

  • Multiple the y component by a scalar

    example
    vec.mulY(2);
    

    Parameters

    • scalar: number

    Returns Vector

notEq

  • Compare x and y components with another vector

    example
    Vector.create(1, 2).notEq({x:1,y:2});
    // false
    example
    Vector.create(1, 1).notEq(Vector.create(1, 2));
    // true

    Parameters

    Returns boolean

    false if x and y components are equal, true otherwise

print

  • Call .toString() and print the output to the console

    example
    vec.print();
    

    Returns Vector

randomize

  • randomize(min?: number, max?: number): Vector
  • Randomize x and y components of the vector

    example
    vec.randomize(0, 100);
    

    Parameters

    • min: number = 0

      min random value

    • max: number = 100

      max random value

    Returns Vector

randomizeX

  • randomizeX(min?: number, max?: number): Vector
  • Randomize x component of the vector

    example
    vec.randomizeX(0, 100).x;
    // some number between 0 and 100

    Parameters

    • min: number = 0

      min random value

    • max: number = 100

      max random value

    Returns Vector

randomizeY

  • randomizeY(min?: number, max?: number): Vector
  • Randomize y component of the vector

    example
    vec.randomizeY(0, 100).y;
    // some number between 0 and 100

    Parameters

    • min: number = 0

      min random value

    • max: number = 100

      max random value

    Returns Vector

reset

rotate

  • rotate(angle: number, degrees?: boolean): Vector
  • Rotate the vector by an angle

    example
    vec.rotate(Math.PI);
    
    example
    vec.rotate(90, true);
    

    Parameters

    • angle: number

      angle in radians, or in degrees if degrees param is true

    • Optional degrees: boolean

      use degrees instead of radians

    Returns Vector

setLength

  • setLength(newLength: number): Vector
  • Set a magnitude of the vector

    example
    vec.setLength(1);
    

    Parameters

    • newLength: number

    Returns Vector

setX

  • Set the x component of the vector

    example
    vec.setX(5);
    

    Parameters

    • x: number

    Returns Vector

setY

  • Set the y component of the vector

    example
    vec.setY(5);
    

    Parameters

    • y: number

    Returns Vector

sub

  • Subtract x and y components of another vector

    example
    vec.sub({x:1,y:1});
    
    example
    vec.sub(Vector.create(1, 2));
    

    Parameters

    Returns Vector

  • Subtract scalar from x and y components

    example
    vec.sub(1);
    

    Parameters

    • scalar: number

    Returns Vector

subX

  • Subtract value from the x component

    example
    vec.subX(1);
    

    Parameters

    • x: number

    Returns Vector

subY

  • Subtract value from the y component

    example
    vec.subY(1);
    

    Parameters

    • y: number

    Returns Vector

swap

  • Swap x and y components with another vector

    example
    vec.swap(anotherVector);
    

    Parameters

    Returns Vector

swapX

  • Swap the x component with another vector

    example
    vec.swapX(anotherVector);
    

    Parameters

    Returns Vector

swapY

  • Swap the x component with another vector

    example
    vec.swapY(anotherVector);
    

    Parameters

    Returns Vector

toArray

  • toArray(): [number, number]
  • Convert the vector to array

    example
    Vector.create(1, 2).toArray()
    // [1, 2]

    Returns [number, number]

toJSON

  • Convert the vector to JSON

    example
    Vector.create(1, 2).toJSON()
    // {x: 1, y: 2 }

    Returns IPoint

toObject

  • Convert the vector to object

    example
    Vector.create(1, 2).toObject()
    // {x: 1, y: 2 }

    Returns IPoint

toString

  • toString(): string
  • Convert the vector to string

    example
    Vector.create(1, 2).toString()
    // x: 1, y: 2

    Returns string

unit

Static create

  • create(x: number, y: number): Vector
  • Create a new vector

    example
    const vec = Vector.create(1, 2);
    

    Parameters

    • x: number
    • y: number

    Returns Vector

Static fromPoint

  • Create a new vector from a point

    example
    const vec = Vector.fromPoint({x: 1, y: 1});
    

    Parameters

    Returns Vector

Static fromTuple

  • fromTuple(__namedParameters: [x: number, y: number]): Vector
  • Create a new vector from a tuple

    example
    const vec = Vector.fromTuple([1, 2]);
    

    Parameters

    • __namedParameters: [x: number, y: number]

    Returns Vector

Static random

  • random(min?: number, max?: number): Vector
  • Create a new vector with random x and y components

    example
    const vec = Vector.random(0, 100);
    

    Parameters

    • min: number = 0

      min random value

    • max: number = 100

      max random value

    Returns Vector

Static zero

  • Create a new vector with 0,0 x and y components

    example
    const vec = Vector.zero();
    

    Returns Vector

Generated using TypeDoc