JavaScript Vector Classes for Creative Coding
8th Jul 2013
I have started a small collection of JavaScript Euclidean Vector classes. These are commonly used in creative programming. I wanted a quick way of adding Vectors in to any project that may need them so they're installable from bower and have a basic set of methods available.
Set up
Currently there is 2 dimensional and 3 dimensional Vectors available. Add references to the files to your project.
Bower
You can install these as a bower dependency
$ bower install js-vector-classes --save
RequireJs
This can be used as a RequireJs dependency. The Vector files will return the JavaScript constructor class. You will just need to point the module name to the corrent location of each file.
require(['Vec2'], function(Vec2){
var velocity = new Vec2(10, 5);
});
Usage
You can start using this vector by creating a new instance:
var v = new Vec2(1, 5),
velocity = new Vec2(10, 5),
location = new Vec2(250, 100)
;
You can set the properties again using
v.set(x, y)
Maths
You have the following methods available to you.
// Maths
v.plus(Vec2)
v.minus(Vec2)
v.mult(Vec2) // multiply
v.div(Vec2) // divide
v.mod(Vec2) // modulus
// helpers
v.inv() // invert
New Instances
Each of these also have a version which returns a new instance just change the first letter to be uppercase.
v.Plus(Vec2)
v.Minus(Vec2)
// => etc
Helpers
You also have a few helper functions
copy(Vec2)
This copies the properties of another vector in to the current vector.
clone()
This returns a new instance of the current vector with cloned values
equals(Vec2)
This will return true if the properties of the two vectors are equal
distance(Vec2)
This will return the distance between two vectors.
Contributing
Feel free to send pull requests and I'll review them as soon as I can.