项目作者: Gregoor

项目描述 :
Immutable 2D Vectors
高级语言: JavaScript
项目地址: git://github.com/Gregoor/Wacktor.git
创建时间: 2015-05-17T21:20:45Z
项目社区:https://github.com/Gregoor/Wacktor

开源协议:

下载


Wacktor

Solves the main pain points I have with the other vector libraries:

  • vectors are not being mutated => every method returns a new vector
  • methods accept vectors, objects, arrays and single numbers
  1. var Vector = require('Wacktor');
  2. var v1 = new Vector(2, 3);
  3. var v2 = new Vector([4, 2]);
  4. var v2 = new Vector({x: 13, y: 37);

Methods

Iterable

  1. var v1 = new Vector(2, 3);
  2. console.log(...v1); // 2, 3
  3. var [x, y] = v1;
  4. console.log(x); // 2

add, sub, mul

The method signature is the same for each of these.

(Number n)

n will be applied to x & y

(Number nx, Number ny) OR ([Number nx, Number ny])

nx will be applied to x, ny to y

(Vector/Object v)

x of v will be applied to x, y of v to y

  1. v1.add(2); // (4, 5)
  2. v1.add(2, 0); // (4, 3)
  3. v1.mul([2, 5]); // (4, 15)

magSq, mag

Returns the (squared) magnitude.

  1. new Vector(4, 3).mag(); // 5

neg

  1. new Vector(12, 34).neg(); // (-12, -34)

equals

Compares the vector with another vector, numbers, array or object.

dist

Distance to another vector, numbers, array or object

dot

angle

max