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

52 lines
1.4 KiB
Java

import { ext } from '@antv/matrix-util';
var transform = ext.transform;
export { transform };
/**
* 对元素进行平移操作。
* @param element 进行变换的元素
* @param x x 方向位移
* @param y y 方向位移
*/
export function translate(element, x, y) {
var matrix = transform(element.getMatrix(), [['t', x, y]]);
element.setMatrix(matrix);
}
/**
* 对元素进行旋转操作。
* @param element 进行变换的元素
* @param rotateRadian 旋转弧度
*/
export function rotate(element, rotateRadian) {
var _a = element.attr(), x = _a.x, y = _a.y;
var matrix = transform(element.getMatrix(), [
['t', -x, -y],
['r', rotateRadian],
['t', x, y],
]);
element.setMatrix(matrix);
}
/**
* 获取元矩阵。
* @returns identity matrix
*/
export function getIdentityMatrix() {
return [1, 0, 0, 0, 1, 0, 0, 0, 1];
}
/**
* 围绕图形中心点进行缩放
* @param element 进行缩放的图形元素
* @param ratio 缩放比例
*/
export function zoom(element, ratio) {
var bbox = element.getBBox();
var x = (bbox.minX + bbox.maxX) / 2;
var y = (bbox.minY + bbox.maxY) / 2;
element.applyToMatrix([x, y, 1]);
var matrix = transform(element.getMatrix(), [
['t', -x, -y],
['s', ratio, ratio],
['t', x, y],
]);
element.setMatrix(matrix);
}
//# sourceMappingURL=transform.js.map