source: node_modules/d3-interpolate/src/transform/decompose.js@ e4c61dd

Last change on this file since e4c61dd was e4c61dd, checked in by istevanoska <ilinastevanoska@…>, 6 months ago

Prototype 1.1

  • Property mode set to 100644
File size: 672 bytes
Line 
1var degrees = 180 / Math.PI;
2
3export var identity = {
4 translateX: 0,
5 translateY: 0,
6 rotate: 0,
7 skewX: 0,
8 scaleX: 1,
9 scaleY: 1
10};
11
12export default function(a, b, c, d, e, f) {
13 var scaleX, scaleY, skewX;
14 if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;
15 if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;
16 if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;
17 if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
18 return {
19 translateX: e,
20 translateY: f,
21 rotate: Math.atan2(b, a) * degrees,
22 skewX: Math.atan(skewX) * degrees,
23 scaleX: scaleX,
24 scaleY: scaleY
25 };
26}
Note: See TracBrowser for help on using the repository browser.