Package Exports
- transformation-matrix
- transformation-matrix/build-commonjs
- transformation-matrix/build-commonjs/index.js
- transformation-matrix/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (transformation-matrix) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
transformation-matrix
Javascript isomorphic 2D affine transformations written in ES6 syntax. Manipulate transformation matrices with this totally tested library!
Features
Transformations, i.e. linear invertible automorphisms, are used to map a picture into another one with different size, position and orientation. Given a basis, transformations are represented by means of squared invertible matrices, called transformation matrices. A geometric transformation is defined as a one-to-one mapping of a point space to itself, which preservers some geometric relations of figures. - Geometric Programming for Computer Aided Design
This library allows us to:
- generate transformation matrices for the following operations: translation, rotation, scale, shear, skew
- merge multiple transformation matrices in a single matrix that is the composition of multiple matrices
- work with strings in both directions: parse, render
- apply a transformation matrix to point(s)
- decompose a matrix into translation, scaling and rotation components, with flip decomposition support
Documentation
- How to handle gestures with transformation-matrix
- APIs
Basic Operations
Calculate
Validate
Apply
Stringify
Compose
Decompose
Moving points (gestures)
Install
npm install transformation-matrix
or
<script src="https://unpkg.com/transformation-matrix@2"></script>
Example
import {scale, rotate, translate, compose, applyToPoint} from 'transformation-matrix';
let {scale, rotate, translate, compose, applyToPoint} = window.TransformationMatrix;
let {scale, rotate, translate, compose, applyToPoint} = require('transformation-matrix')
let matrix = compose(
translate(40,40),
rotate(Math.PI/2),
scale(2, 4)
);
applyToPoint(matrix, {x: 42, y: 42});
// { x: -128, y: 124.00000000000001 }
applyToPoint(matrix, [16, 24]);
// [ -56, 72 ]
Changelog
- 0.0 - Preview version
- 1.0 - First public version
- 1.1 - Splits lib into different files
- 1.2 - Adds shear operation
- 1.3 - Adds umd support
- 1.4 - Adds typescript definitions
- 1.5 - Upgrades deps
- 1.6 - Adds optional parameter support on
translate(tx)
,scale(sx)
,rotate(angle, cx, cy)
- 1.7 - Upgrades deps
- 1.8 - Fixes #12, Adds
fromTransformAttribute
, Discontinues node 4 support - 1.9 - Adds
skew(ax, ay)
, Upgrades deps, ImprovesfromTransformAttribute
- 1.10- Updates typescript definitions #15
- 1.11- Upgrades deps
- 1.12- Migrates tests on Jest, Integrates standard.js, Upgrades deps
- 1.13- Adds
compose
function, Upgrades deps, Exposes skew operation #37 - 1.14- Adds support for points defined as
Array
in the form[x, y]
#38 - 1.15- Adds
fromTriangle
andsmoothMatrix
functions #41 - 2.0- Migrates to Babel 7 and updates dependencies; introduces
fromDefinition
function; breaking changes onfromTransformAttribute
function; improves docs - 2.1- Upgrades deps; Adds Node.js v12 to CI
- 2.2- Upgrades deps; Improves typescript definition #66
- 2.3- Adds
(cx,cy)
onscale
function #62; Improves typescript definition #66; Upgrades deps - 2.4- Improves typescript definition #75
- 2.5- Upgrades deps; Deprecates NodeJS 8; Adds NodeJs 14 support
- 2.6- Upgrades deps; Fixes fromTransformAttribute function #84
- 2.7- Upgrades deps;
- 2.8- Upgrades deps;
- 2.9- Adds
flipX()
,flipY()
,flipOrigin()
functions; Deprecates NodeJS 12 and adds NodeJS 16 support; Upgrades deps; - 2.10 - Adds
decomposeTSR()
function #88; Upgrades deps; - 2.11 - Migrates from yarn to npm; Upgrades deps; New APIs documentation; Integrates chrvadala/github-actions;
- 2.12 - Migrates from PEG.js to Peggy #89; Upgrades deps;
- 2.13 - Upgrades deps; Improves typescript definition; Upgrades gh-actions deps;
- 2.14 - Upgrades deps; Adds
fromOneMovingPoint
andfromTwoMovingPoints
functions #95 - 2.15 - Removes circular dependencies #97; Upgrades gh-actions and deps
- 2.16 - Upgrades deps; Upgrades gh-actions deps;
- 3.0.0 - Refactors fromString #107 (⚠️ Breaking Changes described here); Upgrades gh-actions and deps;
Contributors
- chrvadala (author)
- forabi
- nidu (PEG.js descriptor)
- aubergene
- SophiaLi1
- Shuhei-Tsunoda
- antonyRoberts
- mcwebb
- signalwerk
- estollnitz
- rodrigoapereira
- formatlos
- benhjames
- hillin
- jedrzejchalubek
Some projects using transformation-matrix
- React Planner
- React SVG Pan Zoom
- ngx-graph
- learn-anything
- react-supergrid
- Others...
- Pull request your project!