CSS tranform-2D matrix
npm install @omjs/matrix2dA class derived from @omjs/iterable for describing css 2D-transformation, which is featured by ECMAScript 2015 and Immutable, where a polyfill for Symbol is needed for old browsers.
* Now version: 1.0.0
* Publish date: 2018.06.08
```
npm i @omjs/matrix2d
`html`
`javascript`
import { Matrix2D } from '@omjs/matrix2d';
`javascript`
import { Matrix2D, lmul } from '@omjs/matrix2d';
let mat1 = new Matrix2D(1, 0, 0, 1, 0, 0); // constructor => matrix(1,0,0,1,0,0)
// using babel-plugin-transform-function-bind
let mat2 = mat1::lmul([-1, 0, 0, -1, 0, 0]); // matrix muliply => matrix(-1,0,0,-1,0,0)
mat2.toString(); // => matrix(-1,0,0,-1,0,0)
---
Serveral Numbers, Number Arrays or Strings are allowed to create a Matrix2D Object.
e.g.
`javascript`
let mat1 = new Matrix2D(); // matrix(1,0,0,1,0,0)
let mat2 = new Matrix2D(1, 0, 0, 1, 0, 0); // matrix(1,0,0,1,0,0)
let mat3 = new Matrix2D([1, 0, 0, 1, 0, 0]); // matrix(1,0,0,1)
let mat4 = new Matrix2D('matrix(1,0,0,1,0,0)'); // matrix(1,0,0,1,0,0)
let mat5 = new Matrix2D(mat1); // matrix(1,0,0,1,0,0)
The direction of multiply.
* Matrix2D.MUL_DIR.L - left
* Matrix2D.MUL_DIR.R - Right
The direction of rotate.
* Matrix2D.ROTATE_DIR.CW - clockwise
* Matrix2D.ROTATE_DIR.ACW - anticlockwise
The code version, current version is 1.0.0;
Get the matrix's data by index.
e.g.
`javascript`
let mat = new Matrix2D();
mat[0]; // 1
mat[1]; // 0
mat[2]; // 0
mat[3]; // 1
mat[4]; // 0
mat[5]; // 0
Check whether the obj's type is matrix2d or not;
e.g.
`javascript`
let mat = new Matrix2D(1, 0, 0, 1, 0, 0);
Matrix2D.isMatrix2D(mat); // true
Matrix2D.isMatrix2D([1, 0, 0, 1, 0, 0]); // false
Convert to string.
e.g.
`javascript`
let mat = new Matrix2D(1, 0, 0, 1, 0, 0);
mat.toString(); // matrix(1,0,0,1,0,0)
Get the value of matrix2d object
e.g.
`javascript`
let mat = new Matrix2D();
mat.valueOf(); // [1,0,0,1,0,0]
Get a deep clone.
e.g.
`javascript`
let mat = new Matrix2D();
mat.clone(); // matrix(1,0,0,1,0,0);
mat == mat.clone(); // false
Pre-multiplied by given matrix, and return a new Matrix2D, used to compose transformation.
e.g.
`javascript`
let mat = new Matrix2d();
mat::lmul([-1, 0, 0, -1, 0, 0]); // matrix(-1,0,0,-1,0,0)
Post-multiplied by given matrix, and return a new Matrix2D, used to compose transformation.
e.g.
`javascript`
let mat = new Matrix2d();
mat::rmul([-1, 0, 0, -1, 0, 0]); // matrix(-1,0,0,-1,0,0)
Multiplied by given matrix and " class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">direction, and return a new Matrix2D, used to compose transformation.
e.g.
`javascript``
let mat = new Matrix2d();
mat::mul([-1, 0, 0, -1, 0, 0], Matrix2D.MUL_DIR.L); // matrix(-1,0,0,-1,0,0)