circle.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. "use strict";
  2. exports.__esModule = true;
  3. exports["default"] = void 0;
  4. var _common = require("../../util/common");
  5. var _abstract = _interopRequireDefault(require("./abstract"));
  6. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
  7. function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
  8. var Circle = /*#__PURE__*/function (_Abstract) {
  9. _inheritsLoose(Circle, _Abstract);
  10. function Circle() {
  11. return _Abstract.apply(this, arguments) || this;
  12. }
  13. var _proto = Circle.prototype;
  14. _proto._initDefaultCfg = function _initDefaultCfg() {
  15. _Abstract.prototype._initDefaultCfg.call(this);
  16. this.startAngle = -Math.PI / 2; // start angle,in radian
  17. this.endAngle = Math.PI * 3 / 2; // end angle, in radian
  18. this.radius = null; // radius
  19. this.center = null; // center
  20. };
  21. _proto.getOffsetPoint = function getOffsetPoint(value) {
  22. var startAngle = this.startAngle,
  23. endAngle = this.endAngle;
  24. var angle = startAngle + (endAngle - startAngle) * value;
  25. return this._getCirclePoint(angle);
  26. };
  27. _proto._getCirclePoint = function _getCirclePoint(angle, radius) {
  28. var self = this;
  29. var center = self.center;
  30. radius = radius || self.radius;
  31. return {
  32. x: center.x + Math.cos(angle) * radius,
  33. y: center.y + Math.sin(angle) * radius
  34. };
  35. };
  36. _proto.getTextAlignInfo = function getTextAlignInfo(point, offset) {
  37. var self = this;
  38. var offsetVector = self.getOffsetVector(point, offset);
  39. var align;
  40. var baseLine = 'middle';
  41. if (offsetVector[0] > 0) {
  42. align = 'left';
  43. } else if (offsetVector[0] < 0) {
  44. align = 'right';
  45. } else {
  46. align = 'center';
  47. if (offsetVector[1] > 0) {
  48. baseLine = 'top';
  49. } else if (offsetVector[1] < 0) {
  50. baseLine = 'bottom';
  51. }
  52. }
  53. return {
  54. textAlign: align,
  55. textBaseline: baseLine
  56. };
  57. };
  58. _proto.getAxisVector = function getAxisVector(point) {
  59. var center = this.center;
  60. var factor = this.offsetFactor;
  61. return [(point.y - center.y) * factor, (point.x - center.x) * -1 * factor];
  62. };
  63. _proto.drawLine = function drawLine(lineCfg) {
  64. var center = this.center,
  65. radius = this.radius,
  66. startAngle = this.startAngle,
  67. endAngle = this.endAngle;
  68. var container = this.getContainer(lineCfg.top);
  69. container.addShape('arc', {
  70. className: 'axis-line',
  71. attrs: (0, _common.mix)({
  72. x: center.x,
  73. y: center.y,
  74. r: radius,
  75. startAngle: startAngle,
  76. endAngle: endAngle
  77. }, lineCfg)
  78. });
  79. };
  80. return Circle;
  81. }(_abstract["default"]);
  82. _abstract["default"].Circle = Circle;
  83. var _default = Circle;
  84. exports["default"] = _default;