UNPKG

@antv/util

Version:

> AntV 底层依赖的工具库,不建议在自己业务中使用。

45 lines 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.normalizeSegment = normalizeSegment; /** * Normalizes a single segment of a `PathArray` object. * eg. H/V -> L, T -> Q */ function normalizeSegment(segment, params) { var pathCommand = segment[0]; var px1 = params.x1, py1 = params.y1, px2 = params.x2, py2 = params.y2; var values = segment.slice(1).map(Number); var result = segment; if (!'TQ'.includes(pathCommand)) { // optional but good to be cautious params.qx = null; params.qy = null; } if (pathCommand === 'H') { result = ['L', segment[1], py1]; } else if (pathCommand === 'V') { result = ['L', px1, segment[1]]; } else if (pathCommand === 'S') { var x1 = px1 * 2 - px2; var y1 = py1 * 2 - py2; params.x1 = x1; params.y1 = y1; result = ['C', x1, y1].concat(values); } else if (pathCommand === 'T') { var qx = px1 * 2 - params.qx; var qy = py1 * 2 - params.qy; params.qx = qx; params.qy = qy; result = ['Q', qx, qy].concat(values); } else if (pathCommand === 'Q') { var nqx = values[0], nqy = values[1]; params.qx = nqx; params.qy = nqy; } return result; } //# sourceMappingURL=normalize-segment.js.map