| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- var tslib_1 = require("tslib");
- var group_component_1 = require("../abstract/group-component");
- var util_1 = require("../util/util");
- var ArcAnnotation = /** @class */ (function (_super) {
- tslib_1.__extends(ArcAnnotation, _super);
- function ArcAnnotation() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- /**
- * @protected
- * 默认的配置项
- * @returns {object} 默认的配置项
- */
- ArcAnnotation.prototype.getDefaultCfg = function () {
- var cfg = _super.prototype.getDefaultCfg.call(this);
- return tslib_1.__assign(tslib_1.__assign({}, cfg), { name: 'annotation', type: 'arc', locationType: 'circle', center: null, radius: 100, startAngle: -Math.PI / 2, endAngle: (Math.PI * 3) / 2, style: {
- stroke: '#999',
- lineWidth: 1,
- } });
- };
- ArcAnnotation.prototype.renderInner = function (group) {
- this.renderArc(group);
- };
- ArcAnnotation.prototype.getArcPath = function () {
- var _a = this.getLocation(), center = _a.center, radius = _a.radius, startAngle = _a.startAngle, endAngle = _a.endAngle;
- var startPoint = util_1.getCirclePoint(center, radius, startAngle);
- var endPoint = util_1.getCirclePoint(center, radius, endAngle);
- var largeFlag = endAngle - startAngle > Math.PI ? 1 : 0;
- var path = [['M', startPoint.x, startPoint.y]];
- if (endAngle - startAngle === Math.PI * 2) {
- // 整个圆是分割成两个圆
- var middlePoint = util_1.getCirclePoint(center, radius, startAngle + Math.PI);
- path.push(['A', radius, radius, 0, largeFlag, 1, middlePoint.x, middlePoint.y]);
- path.push(['A', radius, radius, 0, largeFlag, 1, endPoint.x, endPoint.y]);
- }
- else {
- path.push(['A', radius, radius, 0, largeFlag, 1, endPoint.x, endPoint.y]);
- }
- return path;
- };
- // 绘制 arc
- ArcAnnotation.prototype.renderArc = function (group) {
- // 也可以 通过 get('center') 类似的方式逐个获取
- var path = this.getArcPath();
- var style = this.get('style');
- this.addShape(group, {
- type: 'path',
- id: this.getElementId('arc'),
- name: 'annotation-arc',
- attrs: tslib_1.__assign({ path: path }, style),
- });
- };
- return ArcAnnotation;
- }(group_component_1.default));
- exports.default = ArcAnnotation;
- //# sourceMappingURL=arc.js.map
|