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);
var v1 = new Vector(2, 3);
console.log(...v1); // 2, 3
var [x, y] = v1;
console.log(x); // 2
The method signature is the same for each of these.
n will be applied to x & y
nx will be applied to x, ny to y
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)
Returns the (squared) magnitude.
new Vector(4, 3).mag(); // 5
new Vector(12, 34).neg(); // (-12, -34)
Compares the vector with another vector, numbers, array or object.
Distance to another vector, numbers, array or object