transform.js 540 B

12345678910111213141516171819
  1. import identity from "./identity.js";
  2. export default function(transform) {
  3. if (transform == null) return identity;
  4. var x0,
  5. y0,
  6. kx = transform.scale[0],
  7. ky = transform.scale[1],
  8. dx = transform.translate[0],
  9. dy = transform.translate[1];
  10. return function(input, i) {
  11. if (!i) x0 = y0 = 0;
  12. var j = 2, n = input.length, output = new Array(n);
  13. output[0] = (x0 += input[0]) * kx + dx;
  14. output[1] = (y0 += input[1]) * ky + dy;
  15. while (j < n) output[j] = input[j], ++j;
  16. return output;
  17. };
  18. }