UNPKG

@antv/g2plot

Version:

G2 Plot, a market of plots built with the Grammar of Graphics'

80 lines 2.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var g2_1 = require("@antv/g2"); function getRectPath(cx, cy, width, height, size) { var w = width * size; var h = height * size; var path = [ ['M', cx - w / 2, cy + h / 2], ['Q', cx - w / 2, cy, cx - w / 2, cy - h / 2], ['Q', cx, cy - h / 2, cx + w / 2, cy - h / 2], ['Q', cx + w / 2, cy, cx + w / 2, cy + h / 2], ['Q', cx, cy + h / 2, cx - w / 2, cy + h / 2], ['Z'], ]; return path; } exports.getRectPath = getRectPath; function getCirclePath(x, y, size) { var path = [ ['M', x, y], ['m', -size, 0], ['a', size, size, 0, 1, 0, size * 2, 0], ['a', size, size, 0, 1, 0, -(size * 2), 0], ['Z'], ]; return path; } exports.getCirclePath = getCirclePath; function getCircleCurve(x, y, size) { // 计算四个角和中点 var path = [ ['M', x - size, y], ['Q', x - size, y - size, x, y - size], ['Q', x + size, y - size, x + size, y], ['Q', x + size, y + size, x, y + size], ['Q', x - size, y + size, x - size, y], ['Z'], ]; return path; } exports.getCircleCurve = getCircleCurve; g2_1.registerShape('polygon', 'rect', { draw: function (cfg, container) { var points = this.parsePoints(cfg.points); var width = points[2].x - points[0].x; var height = points[0].y - points[1].y; var centerX = points[0].x + width / 2; var centerY = points[1].y + height / 2; /* const path = [ ['M', centerX - w / 2, centerY + h / 2], ['L', centerX - w / 2, centerY - h / 2], ['L', centerX + w / 2, centerY - h / 2], ['L', centerX + w / 2, centerY + h / 2], ['Z'], ]; */ var path = getRectPath(centerX, centerY, width, height, cfg.origin.size); return container.addShape('path', { attrs: { path: path, fill: cfg.color, opacity: 1, }, }); }, }); g2_1.registerShape('point', 'curvePoint', { draw: function (cfg, container) { var path = getCirclePath(cfg.x, cfg.y, cfg.size); return container.addShape('path', { attrs: { path: path, fill: cfg.color, opacity: 1, }, }); }, }); //# sourceMappingURL=shape.js.map