wacktor
v1.2.4
Published
Immutable 2D vector library.
Downloads
4
Readme
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
var Vector = require('Wacktor');
var v1 = new Vector(2, 3);
var v2 = new Vector([4, 2]);
var v2 = new Vector({x: 13, y: 37);
Methods
Iterable
var v1 = new Vector(2, 3);
console.log(...v1); // 2, 3
var [x, y] = v1;
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
v1.add(2); // (4, 5)
v1.add(2, 0); // (4, 3)
v1.mul([2, 5]); // (4, 15)
magSq, mag
Returns the (squared) magnitude.
new Vector(4, 3).mag(); // 5
neg
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