2.3.4 • Published 4 years ago

lib-vec2 v2.3.4

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

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));
2.3.4

4 years ago

2.3.3

4 years ago

2.3.2

5 years ago

2.3.1

5 years ago

2.3.0

5 years ago

2.2.0

7 years ago

2.1.0

7 years ago

2.0.0

7 years ago

1.0.0

7 years ago