Skip to content

Unmatrix is a JS module that decomposes a transform matrix to the original values.

Notifications You must be signed in to change notification settings

thednp/unmatrix

Repository files navigation

Unmatrix

Unmatrix is a JS module that decomposes a transform matrix to the original values.

Unmatrix.getTransform() returns an object with properties perspective, rotate, rotateX, rotateY, rotateZ, scaleX, scaleY, scaleZ, skew, skewX, skewY, translateX, translateY, translateZ, or null if no transform is found.

Demo

http://stassop.github.io/unmatrix/

Install

npm install unmatrix

Example

import Unmatrix from 'unmatrix';
const element = document.querySelector('#myElement');
const transform = Unmatrix.getTransform(element);

Notes

Unmatrix uses James Coglan's library Sylvester, and has sylvester-es6 as a dependency.

The decomposition method is based upon the "unmatrix" method in "Graphics Gems II, edited by Jim Arvo", but modified to use Quaternions instead of Euler angles to avoid the problem of Gimbal Locks.

When interpolating between two matrices, each is decomposed into the corresponding translation, rotation, scale, skew and perspective values.

Not all matrices can be accurately described by these values. Those that can't are decomposed into the most accurate representation possible.

This technique works on a 4x4 homogeneous matrix.

For more information on matrix decomposition see here and here

About

Unmatrix is a JS module that decomposes a transform matrix to the original values.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published