1 line
5.6 KiB
Plaintext
1 line
5.6 KiB
Plaintext
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/animate/animation/util.ts"],"names":[],"mappings":"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","sourcesContent":["import { ext } from '@antv/matrix-util';\nimport { Coordinate, IGroup, IShape } from '../../dependents';\nimport { GAnimateCfg, Point } from '../../interface';\n\n/**\n * @ignore\n * 对图形元素进行矩阵变换,同时返回变换前的图形矩阵\n * @param shape 进行矩阵变换的图形\n * @param vector 矩阵变换的中心点\n * @param direct 矩阵变换的类型\n */\nexport function transformShape(shape: IShape | IGroup, vector: [number, number], direct: string): number[] {\n let scaledMatrix;\n\n const [x, y] = vector;\n shape.applyToMatrix([x, y, 1]);\n if (direct === 'x') {\n shape.setMatrix(\n ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 0.01, 1],\n ['t', x, y],\n ])\n );\n scaledMatrix = ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 100, 1],\n ['t', x, y],\n ]);\n } else if (direct === 'y') {\n shape.setMatrix(\n ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 1, 0.01],\n ['t', x, y],\n ])\n );\n scaledMatrix = ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 1, 100],\n ['t', x, y],\n ]);\n } else if (direct === 'xy') {\n shape.setMatrix(\n ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 0.01, 0.01],\n ['t', x, y],\n ])\n );\n scaledMatrix = ext.transform(shape.getMatrix(), [\n ['t', -x, -y],\n ['s', 100, 100],\n ['t', x, y],\n ]);\n }\n return scaledMatrix;\n}\n\n/**\n * 对图形元素进行剪切动画\n * @param element 进行动画的图形元素\n * @param animateCfg 动画配置\n * @param coordinate 当前坐标系\n * @param yMinPoint y 轴的最小值对应的图形坐标点\n * @param type 剪切动画的类型\n */\nexport function doScaleAnimate(\n element: IGroup | IShape,\n animateCfg: GAnimateCfg,\n coordinate: Coordinate,\n yMinPoint: Point,\n type: string\n) {\n const { start, end } = coordinate;\n const width = coordinate.getWidth();\n const height = coordinate.getHeight();\n let x: number;\n let y: number;\n\n if (type === 'y') {\n x = start.x + width / 2;\n y = yMinPoint.y < start.y ? yMinPoint.y : start.y;\n } else if (type === 'x') {\n x = yMinPoint.x > start.x ? yMinPoint.x : start.x;\n y = start.y + height / 2;\n } else if (type === 'xy') {\n if (coordinate.isPolar) {\n x = coordinate.getCenter().x;\n y = coordinate.getCenter().y;\n } else {\n x = (start.x + end.x) / 2;\n y = (start.y + end.y) / 2;\n }\n }\n\n const endMatrix = transformShape(element, [x, y], type);\n element.animate(\n {\n matrix: endMatrix,\n },\n animateCfg\n );\n}\n"]} |