symbols.js 1.3 KB

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