untransform.js 630 B

1234567891011121314151617181920212223
  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,
  13. n = input.length,
  14. output = new Array(n),
  15. x1 = Math.round((input[0] - dx) / kx),
  16. y1 = Math.round((input[1] - dy) / ky);
  17. output[0] = x1 - x0, x0 = x1;
  18. output[1] = y1 - y0, y0 = y1;
  19. while (j < n) output[j] = input[j], ++j;
  20. return output;
  21. };
  22. }