NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/g2/esm/util/graphics.js.map
2023-09-14 14:47:11 +08:00

1 line
13 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"graphics.js","sourceRoot":"","sources":["../../src/util/graphics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIpE,WAAW;AACX,SAAS,YAAY,CAAC,MAAM;IAC1B,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;QACnB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,MAAM,EAAE,UAAC,KAAK;QACjB,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,MAAA;QACJ,IAAI,MAAA;QACJ,IAAI,MAAA;QACJ,IAAI,MAAA;QACJ,OAAO,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;QAC1B,OAAO,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,OAAe,EAAE,MAAc,EAAE,aAAqB;IACtG,OAAO;QACL,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;QAC7C,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,OAAe,EACf,MAAc,EACd,kBAA0B,EAC1B,gBAAwB,EACxB,WAAuB;IAAvB,4BAAA,EAAA,eAAuB;IAEvB,IAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC7E,IAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAEzE,IAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACvF,IAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAEnF,IAAI,gBAAgB,GAAG,kBAAkB,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE;QACzD,aAAa;QACb,IAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7F,IAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QACvG,IAAM,kBAAkB,GAAG;YACzB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACvB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;YAC5D,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5C,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;SAClC,CAAC;QACF,IAAI,WAAW,EAAE;YACf,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1G,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3F;QAED,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/B,OAAO,kBAAkB,CAAC;KAC3B;IAED,IAAM,QAAQ,GAAG,gBAAgB,GAAG,kBAAkB,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,IAAM,kBAAkB,GAAG;QACzB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACvB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;KAC9B,CAAC;IACF,IAAI,WAAW,EAAE;QACf,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KACtG;IACD,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/B,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CACxB,OAAe,EACf,OAAe,EACf,MAAc,EACd,kBAA0B,EAC1B,gBAAwB;IAExB,IAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC7E,IAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAEzE,IAAI,aAAa,CAAC,gBAAgB,GAAG,kBAAkB,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;QACrE,IAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO;YACL,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACvB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;YAC5D,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YAChD,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;YAC5D,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YAChD,CAAC,GAAG,CAAC;SACN,CAAC;KACH;IACD,IAAM,QAAQ,GAAG,gBAAgB,GAAG,kBAAkB,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,OAAO;QACL,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACvB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;KACpD,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,UAAqB,EAAE,UAAsB;IACpE,IAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,QAAQ,CAAC;IACb,IAAI,UAAU,CAAC;IACP,IAAY,eAAe,GAA8B,UAAU,WAAxC,EAAY,aAAa,GAAK,UAAU,SAAf,CAAgB;IAC5E,IAAM,SAAS,GAAG,aAAa,GAAG,eAAe,CAAC;IAElD,IAAI,UAAU,CAAC,YAAY,EAAE;QAC3B,QAAQ,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;QAChC,UAAU,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;KACnC;SAAM;QACL,QAAQ,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;QAChC,UAAU,GAAG,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;KACnC;IACD,QAAQ,IAAI,eAAe,CAAC;IAC5B,UAAU,IAAI,eAAe,CAAC;IAC9B,OAAO;QACL,UAAU,YAAA;QACV,QAAQ,UAAA;KACT,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAqB,EAAE,EAAqB;IAC7E,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE;QAChC,oBAAoB;QACpB,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;KACjB;IACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACX,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,MAAM,CAAC;IACX,IAAI,OAAO,GAAI,EAAe,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC;IACT,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,EAAE,CAAC,GAAI,EAAe,CAAC,MAAM,EAAE;QACpC,MAAM,GAAG,OAAO,CAAC;QACjB,OAAO,GAAG,CAAC,CAAC;QACZ,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;QAChE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;QACvC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;KACxC;IACD,CAAC,IAAI,CAAC,CAAC;IACP,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,WAAmB;IACtE,IAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACvC,IAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,WAAW,EAAE,UAAC,CAAC,EAAE,CAAC;QACrB,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;SACzB;IACH,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import { each, isEmpty, isNumber, isNumberEqual } from '@antv/util';\nimport { Coordinate, IShape } from '../dependents';\nimport { ShapeInfo } from '../interface';\n\n// 获取图形的包围盒\nfunction getPointsBox(points) {\n if (isEmpty(points)) {\n return null;\n }\n\n let minX = points[0].x;\n let maxX = points[0].x;\n let minY = points[0].y;\n let maxY = points[0].y;\n each(points, (point) => {\n minX = minX > point.x ? point.x : minX;\n maxX = maxX < point.x ? point.x : maxX;\n minY = minY > point.y ? point.y : minY;\n maxY = maxY < point.y ? point.y : maxY;\n });\n\n return {\n minX,\n maxX,\n minY,\n maxY,\n centerX: (minX + maxX) / 2,\n centerY: (minY + maxY) / 2,\n };\n}\n\n/**\n * @ignore\n * 根据弧度计算极坐标系下的坐标点\n * @param centerX\n * @param centerY\n * @param radius\n * @param angleInRadian\n * @returns\n */\nexport function polarToCartesian(centerX: number, centerY: number, radius: number, angleInRadian: number) {\n return {\n x: centerX + radius * Math.cos(angleInRadian),\n y: centerY + radius * Math.sin(angleInRadian),\n };\n}\n\n/**\n * @ignore\n * 根据起始角度计算绘制扇形的 path\n * @param centerX\n * @param centerY\n * @param radius\n * @param startAngleInRadian\n * @param endAngleInRadian\n * @returns\n */\nexport function getSectorPath(\n centerX: number,\n centerY: number,\n radius: number,\n startAngleInRadian: number,\n endAngleInRadian: number,\n innerRadius: number = 0\n) {\n const start = polarToCartesian(centerX, centerY, radius, startAngleInRadian);\n const end = polarToCartesian(centerX, centerY, radius, endAngleInRadian);\n\n const innerStart = polarToCartesian(centerX, centerY, innerRadius, startAngleInRadian);\n const innerEnd = polarToCartesian(centerX, centerY, innerRadius, endAngleInRadian);\n\n if (endAngleInRadian - startAngleInRadian === Math.PI * 2) {\n // 整个圆是分割成两个圆\n const middlePoint = polarToCartesian(centerX, centerY, radius, startAngleInRadian + Math.PI);\n const innerMiddlePoint = polarToCartesian(centerX, centerY, innerRadius, startAngleInRadian + Math.PI);\n const circlePathCommands = [\n ['M', start.x, start.y],\n ['A', radius, radius, 0, 1, 1, middlePoint.x, middlePoint.y],\n ['A', radius, radius, 0, 1, 1, end.x, end.y],\n ['M', innerStart.x, innerStart.y],\n ];\n if (innerRadius) {\n circlePathCommands.push(['A', innerRadius, innerRadius, 0, 1, 0, innerMiddlePoint.x, innerMiddlePoint.y]);\n circlePathCommands.push(['A', innerRadius, innerRadius, 0, 1, 0, innerEnd.x, innerEnd.y]);\n }\n\n circlePathCommands.push(['M', start.x, start.y]);\n circlePathCommands.push(['Z']);\n\n return circlePathCommands;\n }\n\n const arcSweep = endAngleInRadian - startAngleInRadian <= Math.PI ? 0 : 1;\n const sectorPathCommands = [\n ['M', start.x, start.y],\n ['A', radius, radius, 0, arcSweep, 1, end.x, end.y],\n ['L', innerEnd.x, innerEnd.y],\n ];\n if (innerRadius) {\n sectorPathCommands.push(['A', innerRadius, innerRadius, 0, arcSweep, 0, innerStart.x, innerStart.y]);\n }\n sectorPathCommands.push(['L', start.x, start.y]);\n sectorPathCommands.push(['Z']);\n\n return sectorPathCommands;\n}\n\n/**\n * @ignore\n * Gets arc path\n * @param centerX\n * @param centerY\n * @param radius\n * @param startAngleInRadian\n * @param endAngleInRadian\n * @returns\n */\nexport function getArcPath(\n centerX: number,\n centerY: number,\n radius: number,\n startAngleInRadian: number,\n endAngleInRadian: number\n) {\n const start = polarToCartesian(centerX, centerY, radius, startAngleInRadian);\n const end = polarToCartesian(centerX, centerY, radius, endAngleInRadian);\n\n if (isNumberEqual(endAngleInRadian - startAngleInRadian, Math.PI * 2)) {\n const middlePoint = polarToCartesian(centerX, centerY, radius, startAngleInRadian + Math.PI);\n return [\n ['M', start.x, start.y],\n ['A', radius, radius, 0, 1, 1, middlePoint.x, middlePoint.y],\n ['A', radius, radius, 0, 1, 1, start.x, start.y],\n ['A', radius, radius, 0, 1, 0, middlePoint.x, middlePoint.y],\n ['A', radius, radius, 0, 1, 0, start.x, start.y],\n ['Z'],\n ];\n }\n const arcSweep = endAngleInRadian - startAngleInRadian <= Math.PI ? 0 : 1;\n return [\n ['M', start.x, start.y],\n ['A', radius, radius, 0, arcSweep, 1, end.x, end.y],\n ];\n}\n\n/**\n * @ignore\n * 从数据模型中的 points 换算角度\n * @param shapeModel\n * @param coordinate\n * @returns\n */\nexport function getAngle(shapeModel: ShapeInfo, coordinate: Coordinate) {\n const points = shapeModel.points;\n const box = getPointsBox(points);\n let endAngle;\n let startAngle;\n const { startAngle: coordStartAngle, endAngle: coordEndAngle } = coordinate;\n const diffAngle = coordEndAngle - coordStartAngle;\n\n if (coordinate.isTransposed) {\n endAngle = box.maxY * diffAngle;\n startAngle = box.minY * diffAngle;\n } else {\n endAngle = box.maxX * diffAngle;\n startAngle = box.minX * diffAngle;\n }\n endAngle += coordStartAngle;\n startAngle += coordStartAngle;\n return {\n startAngle,\n endAngle,\n };\n}\n\n/**\n * @ignore\n * 计算多边形重心: https://en.wikipedia.org/wiki/Centroid#Of_a_polygon\n */\nexport function getPolygonCentroid(xs: number | number[], ys: number | number[]) {\n if (isNumber(xs) && isNumber(ys)) {\n // 普通色块图xs 和 ys 是数值\n return [xs, ys];\n }\n let i = -1;\n let x = 0;\n let y = 0;\n let former;\n let current = (xs as number[]).length - 1;\n let diff;\n let k = 0;\n while (++i < (xs as number[]).length) {\n former = current;\n current = i;\n k += diff = xs[former] * ys[current] - xs[current] * ys[former];\n x += (xs[former] + xs[current]) * diff;\n y += (ys[former] + ys[current]) * diff;\n }\n k *= 3;\n return [x / k, y / k];\n}\n\n/**\n * @ignore\n * 获取需要替换的属性,如果原先图形元素存在,而新图形不存在,则设置 undefined\n */\nexport function getReplaceAttrs(sourceShape: IShape, targetShape: IShape) {\n const originAttrs = sourceShape.attr();\n const newAttrs = targetShape.attr();\n each(originAttrs, (v, k) => {\n if (newAttrs[k] === undefined) {\n newAttrs[k] = undefined;\n }\n });\n return newAttrs;\n}\n"]}