lib-vec2

2.3.4 • Public • Published

Vec2

A simple 2d vector library, for example:

  var Vec2 = require("lib-vec2").Vec2;
 
  // construct
  var v0 = new Vec2(); // zero vector
  var v1 = new Vec2(10, 10);
  var v2 = new Vec2(20, 30);
  var v3 = new Vec2(v1);
 
  // add
  var v4 = v1.add(v2);
 
  // subtract
  var v4 = v1.sub(v2);
 
  // multiply by constant
  var v5 = v1.mul(5);
 
  // divide by constant
  var v6 = v1.div(5);
 
  // find the modulus squared and modulus
  var m2 = v1.mod2();
  var m = v1.mod();
 
  // normalise
  var n = v1.norm();
 
  // dot product
  var d = v1.dot(v2);
 
  // compound stuff
  var v7 = new Vec2(10, 10).add(new Vec2(20, 20)).norm();

in addition affine matrix transformations are available, for example:

  var MatA = require("lib-vec2").MatA;
 
  // construct
  //
  // [m00 m01 m02]
  // [m10 m11 m12]
  // [ 0   0   1 ]
  //
  var m = new MatA(1, 2, 3, 4, 5, 6);
 
  // identity
  var i = MatA.identity();
 
  // translate
  var t = MatA.translate(new Vec2(10, 20));
 
  // scale
  var s = MatA.scale(new Vec2(1, 78));
 
  // rotate
  var r = MatA.rotate(Math.PI);
 
  // multiply a vector
  var v = MatA.rotate(Math.PI / 2).mulV(new Vec2(2, 3));
 
  // multiply another matrix
  var m = MatA.translate(new Vec2(2, 3)).mulM(MatA.scale(new Vec2(30, 40)));
 
  // compound stuff
  var rr = MatA.rotate(Math.PI).mulM(MatA.rotate(-Math.PI)).mulM(MatA.rotate(Math.PI)).mulV(new Vec2(1, 2));
 

Readme

Keywords

Package Sidebar

Install

npm i lib-vec2

Weekly Downloads

0

Version

2.3.4

License

MIT

Unpacked Size

16.3 kB

Total Files

6

Last publish

Collaborators

  • ernie_hs