UNPKG

2.06 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.zoom = exports.getIdentityMatrix = exports.rotate = exports.getRotateMatrix = exports.translate = exports.transform = void 0;
4var matrix_util_1 = require("@antv/matrix-util");
5var transform = matrix_util_1.ext.transform;
6exports.transform = transform;
7/**
8 * 对元素进行平移操作。
9 * @param element 进行变换的元素
10 * @param x x 方向位移
11 * @param y y 方向位移
12 */
13function translate(element, x, y) {
14 var matrix = transform(element.getMatrix(), [['t', x, y]]);
15 element.setMatrix(matrix);
16}
17exports.translate = translate;
18/**
19 * 获取元素旋转矩阵 (以元素的左上角为旋转点)
20 * @param element 进行变换的元素
21 * @param rotateRadian 旋转弧度
22 */
23function getRotateMatrix(element, rotateRadian) {
24 var _a = element.attr(), x = _a.x, y = _a.y;
25 var matrix = transform(element.getMatrix(), [
26 ['t', -x, -y],
27 ['r', rotateRadian],
28 ['t', x, y],
29 ]);
30 return matrix;
31}
32exports.getRotateMatrix = getRotateMatrix;
33/**
34 * 对元素进行旋转操作。
35 * @param element 进行变换的元素
36 * @param rotateRadian 旋转弧度
37 */
38function rotate(element, rotateRadian) {
39 var matrix = getRotateMatrix(element, rotateRadian);
40 element.setMatrix(matrix);
41}
42exports.rotate = rotate;
43/**
44 * 获取元矩阵。
45 * @returns identity matrix
46 */
47function getIdentityMatrix() {
48 return [1, 0, 0, 0, 1, 0, 0, 0, 1];
49}
50exports.getIdentityMatrix = getIdentityMatrix;
51/**
52 * 围绕图形中心点进行缩放
53 * @param element 进行缩放的图形元素
54 * @param ratio 缩放比例
55 */
56function zoom(element, ratio) {
57 var bbox = element.getBBox();
58 var x = (bbox.minX + bbox.maxX) / 2;
59 var y = (bbox.minY + bbox.maxY) / 2;
60 element.applyToMatrix([x, y, 1]);
61 var matrix = transform(element.getMatrix(), [
62 ['t', -x, -y],
63 ['s', ratio, ratio],
64 ['t', x, y],
65 ]);
66 element.setMatrix(matrix);
67}
68exports.zoom = zoom;
69//# sourceMappingURL=transform.js.map
\No newline at end of file