symbols.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var Symbols = {
  4. // 圆
  5. circle: function (x, y, r) {
  6. return [
  7. ['M', x, y],
  8. ['m', -r, 0],
  9. ['a', r, r, 0, 1, 0, r * 2, 0],
  10. ['a', r, r, 0, 1, 0, -r * 2, 0],
  11. ];
  12. },
  13. // 正方形
  14. square: function (x, y, r) {
  15. return [['M', x - r, y - r], ['L', x + r, y - r], ['L', x + r, y + r], ['L', x - r, y + r], ['Z']];
  16. },
  17. // 菱形
  18. diamond: function (x, y, r) {
  19. return [['M', x - r, y], ['L', x, y - r], ['L', x + r, y], ['L', x, y + r], ['Z']];
  20. },
  21. // 三角形
  22. triangle: function (x, y, r) {
  23. var diffY = r * Math.sin((1 / 3) * Math.PI);
  24. return [['M', x - r, y + diffY], ['L', x, y - diffY], ['L', x + r, y + diffY], ['z']];
  25. },
  26. // 倒三角形
  27. triangleDown: function (x, y, r) {
  28. var diffY = r * Math.sin((1 / 3) * Math.PI);
  29. return [['M', x - r, y - diffY], ['L', x + r, y - diffY], ['L', x, y + diffY], ['Z']];
  30. },
  31. };
  32. exports.default = {
  33. get: function (type) {
  34. return Symbols[type];
  35. },
  36. register: function (type, func) {
  37. Symbols[type] = func;
  38. },
  39. remove: function (type) {
  40. delete Symbols[type];
  41. },
  42. getAll: function () {
  43. return Symbols;
  44. },
  45. };
  46. //# sourceMappingURL=symbols.js.map