SvgTransformUtil.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import {
  2. transform as svgTransform,
  3. createTransform
  4. } from 'tiny-svg';
  5. /**
  6. * @param {<SVGElement>} element
  7. * @param {Number} x
  8. * @param {Number} y
  9. * @param {Number} angle
  10. * @param {Number} amount
  11. */
  12. export function transform(gfx, x, y, angle, amount) {
  13. var translate = createTransform();
  14. translate.setTranslate(x, y);
  15. var rotate = createTransform();
  16. rotate.setRotate(angle, 0, 0);
  17. var scale = createTransform();
  18. scale.setScale(amount || 1, amount || 1);
  19. svgTransform(gfx, [ translate, rotate, scale ]);
  20. }
  21. /**
  22. * @param {SVGElement} element
  23. * @param {Number} x
  24. * @param {Number} y
  25. */
  26. export function translate(gfx, x, y) {
  27. var translate = createTransform();
  28. translate.setTranslate(x, y);
  29. svgTransform(gfx, translate);
  30. }
  31. /**
  32. * @param {SVGElement} element
  33. * @param {Number} angle
  34. */
  35. export function rotate(gfx, angle) {
  36. var rotate = createTransform();
  37. rotate.setRotate(angle, 0, 0);
  38. svgTransform(gfx, rotate);
  39. }
  40. /**
  41. * @param {SVGElement} element
  42. * @param {Number} amount
  43. */
  44. export function scale(gfx, amount) {
  45. var scale = createTransform();
  46. scale.setScale(amount, amount);
  47. svgTransform(gfx, scale);
  48. }