NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/g2/esm/animate/animation/scale-in.js
2023-09-14 14:47:11 +08:00

60 lines
1.7 KiB
Java

import { ext } from '@antv/matrix-util';
/**
* @ignore
* 沿着 x 方向放大的动画
* @param shape
* @param animateCfg
* @param shapeModel
*/
export function scaleInX(shape, animateCfg, cfg) {
var box = shape.getBBox();
var mappingData = shape.get('origin').mappingData;
var points = mappingData.points;
// x 数值如果为负值,那么应该从右往左生长
var x = points[0].y - points[1].y > 0 ? box.maxX : box.minX;
var y = (box.minY + box.maxY) / 2;
shape.applyToMatrix([x, y, 1]);
var matrix = ext.transform(shape.getMatrix(), [
['t', -x, -y],
['s', 0.01, 1],
['t', x, y],
]);
shape.setMatrix(matrix);
shape.animate({
matrix: ext.transform(shape.getMatrix(), [
['t', -x, -y],
['s', 100, 1],
['t', x, y],
]),
}, animateCfg);
}
/**
* @ignore
* 沿着 y 方向放大的动画
* @param shape
* @param animateCfg
* @param shapeModel
*/
export function scaleInY(shape, animateCfg, cfg) {
var box = shape.getBBox();
var mappingData = shape.get('origin').mappingData;
var x = (box.minX + box.maxX) / 2;
var points = mappingData.points;
// 数值如果为负值,那么应该从上往下生长,通过 shape 的关键点进行判断
var y = points[0].y - points[1].y <= 0 ? box.maxY : box.minY;
shape.applyToMatrix([x, y, 1]);
var matrix = ext.transform(shape.getMatrix(), [
['t', -x, -y],
['s', 1, 0.01],
['t', x, y],
]);
shape.setMatrix(matrix);
shape.animate({
matrix: ext.transform(shape.getMatrix(), [
['t', -x, -y],
['s', 1, 100],
['t', x, y],
]),
}, animateCfg);
}
//# sourceMappingURL=scale-in.js.map