|
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 | |
|---|
| 1 | var degrees = 180 / Math.PI;
|
|---|
| 2 |
|
|---|
| 3 | export var identity = {
|
|---|
| 4 | translateX: 0,
|
|---|
| 5 | translateY: 0,
|
|---|
| 6 | rotate: 0,
|
|---|
| 7 | skewX: 0,
|
|---|
| 8 | scaleX: 1,
|
|---|
| 9 | scaleY: 1
|
|---|
| 10 | };
|
|---|
| 11 |
|
|---|
| 12 | export 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.