vector-es v0.3.0
vector-2d

2d vector { x, y } for math / physics
Install
npm install vector-esUsage
import Vector from 'vector-es';
const vector = new Vector(1, 2);
vector.mult(2); // { x: 2, y 4}API
Vector
constructor :: (Number, Number) -> Vector
Properties
a vector is shape of { x, y }
xy
Static methods
All static methods are immutable.
operators
add :: (Vector, Vector) -> Vectoradd two vectors
sub :: (Vector, Vector) -> Vectorsubtract one vector from another.
mult :: (Vector, Number) -> Vectormultiply by scalar
div :: (Vector, Number) -> Vectordivide by scalar
dot :: (Vector, Vector) -> Numberdot product
cross :: (Vector, Vector) -> Numbercross product
evaluate
mag :: Vector -> Numberthe magnitude of a vector
magSq :: Vector -> Numberthe square of the magnitude
dir :: Vector -> Numberthe direction of a vector
dist :: (Vector, Vector) -> Numberthe distance between two vectors
distSq :: (Vector, Vector) -> Numberthe square of the distance between two vectors
angle :: (Vector, Vector) -> Numberthe angle between two vectors, range 0, PI
create
create :: (Number, Number) -> Vectorcreate a vector by rectangular form
fromAngle :: (Number, Number) -> Vectorcreate a vector by angle
normalize :: Vector -> Vectornormalize the vector to a length of 1
clone :: Vector -> Vectorcreate a new vector copy
Instance methods
All instance methods are very similar to the statics. there're two differences.
first argumentinstance methods don't need first argument, it's itself.
mutablemost of methods are mutable.
operators
add :: Vector -> Vectoradds a vector
sub :: Vector -> Vectorsubtract from another vector
mult :: Number -> Vectormultiply a vector by a scalar
div :: Number -> Vectordivide a vector by a scalar
dot :: Vector -> Numberdot product
cross :: Vector -> Numbercross product
evaluate
mag :: () -> Numberthe magnitude of a vector
magSq :: () -> Numberthe square of the magnitude
dir :: () -> Numberthe direction of a vector
dist :: Vector -> Numberthe distance between two vectors
distSq :: Vector -> Numberthe square of the distance between two vectors
angle :: Vector -> Numberthe angle between two vectors, range 0, PI
create
clone :: () -> Vectorcreate a vector copy, this's an immutable method
normalize :: () -> Vectorcreate a unit vector
manipulate
set :: (Number, Number) -> Vectorset x, y of this vector
setX :: Number -> Vectorset x of this vector
setY :: Number -> Vectorset y of this vector
setMag :: Number -> Vectorset the magnitude of this vector
limit :: Number -> Vectorlimit the magnitude of this vector