vislite 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AUTHORS.txt +6 -6
- package/CHANGELOG +7 -1
- package/LICENSE +20 -20
- package/README.md +53 -53
- package/lib/Buffer/index.umd.js +2 -2
- package/lib/Buffer/index.umd.min.js +2 -2
- package/lib/Canvas/index.umd.js +9 -2
- package/lib/Canvas/index.umd.min.js +3 -3
- package/lib/Cardinal/index.umd.js +2 -2
- package/lib/Cardinal/index.umd.min.js +2 -2
- package/lib/Eoap/index.umd.js +2 -2
- package/lib/Eoap/index.umd.min.js +2 -2
- package/lib/Hermite/index.umd.js +2 -2
- package/lib/Hermite/index.umd.min.js +2 -2
- package/lib/Matrix4/index.umd.js +2 -2
- package/lib/Matrix4/index.umd.min.js +2 -2
- package/lib/Mercator/index.umd.js +2 -2
- package/lib/Mercator/index.umd.min.js +2 -2
- package/lib/OralCanvas/index.es.js +9 -2
- package/lib/OralCanvas/index.es.min.js +3 -3
- package/lib/OralWebGL/index.es.js +2 -2
- package/lib/OralWebGL/index.es.min.js +2 -2
- package/lib/SVG/index.umd.js +2 -2
- package/lib/SVG/index.umd.min.js +2 -2
- package/lib/Shader/index.umd.js +2 -2
- package/lib/Shader/index.umd.min.js +2 -2
- package/lib/Texture/index.umd.js +2 -2
- package/lib/Texture/index.umd.min.js +2 -2
- package/lib/WebGL/index.umd.js +2 -2
- package/lib/WebGL/index.umd.min.js +2 -2
- package/lib/animation/index.umd.js +2 -2
- package/lib/animation/index.umd.min.js +2 -2
- package/lib/getLoopColors/index.umd.js +2 -2
- package/lib/getLoopColors/index.umd.min.js +2 -2
- package/lib/getWebGLContext/index.umd.js +2 -2
- package/lib/getWebGLContext/index.umd.min.js +2 -2
- package/lib/index.umd.js +9 -2
- package/lib/index.umd.min.js +3 -3
- package/lib/rotate/index.umd.js +2 -2
- package/lib/rotate/index.umd.min.js +2 -2
- package/lib/ruler/index.umd.js +2 -2
- package/lib/ruler/index.umd.min.js +2 -2
- package/lib/viewHandler/index.umd.js +2 -2
- package/lib/viewHandler/index.umd.min.js +2 -2
- package/miniprogram/ui-canvas/index.js +99 -99
- package/miniprogram/ui-canvas/index.json +4 -4
- package/miniprogram/ui-canvas/index.wxml +4 -4
- package/miniprogram/ui-canvas/index.wxss +5 -5
- package/package/Buffer/index.ts +1 -1
- package/package/Canvas/index.ts +1 -1
- package/package/Cardinal/index.ts +2 -2
- package/package/Eoap/index.ts +2 -2
- package/package/Hermite/index.ts +2 -2
- package/package/Matrix4/index.ts +2 -2
- package/package/Mercator/index.ts +2 -2
- package/package/OralCanvas/index.ts +1 -1
- package/package/OralWebGL/index.ts +1 -1
- package/package/SVG/index.ts +2 -2
- package/package/Shader/index.ts +1 -1
- package/package/Texture/index.ts +1 -1
- package/package/WebGL/index.ts +1 -1
- package/package/animation/index.ts +2 -2
- package/package/getLoopColors/index.ts +2 -2
- package/package/getWebGLContext/index.ts +39 -39
- package/package/index.ts +56 -56
- package/package/rotate/index.ts +2 -2
- package/package/ruler/index.ts +2 -2
- package/package/viewHandler/index.ts +2 -2
- package/package.json +2 -2
- package/src/Canvas.ts +56 -56
- package/src/Eoap.ts +66 -66
- package/src/Matrix4/index.ts +76 -76
- package/src/Matrix4/move.ts +12 -12
- package/src/Matrix4/rotate.ts +15 -15
- package/src/Matrix4/scale.ts +11 -11
- package/src/Matrix4/transform.ts +64 -64
- package/src/Mercator.ts +26 -26
- package/src/SVG.ts +23 -23
- package/src/WebGL.ts +52 -52
- package/src/animation.ts +99 -99
- package/src/common/canvas/arc.ts +50 -50
- package/src/common/canvas/config.ts +157 -157
- package/src/common/canvas/gradient.ts +29 -29
- package/src/common/canvas/index.ts +14 -0
- package/src/common/canvas/painter.ts +355 -355
- package/src/common/canvas/texts.ts +18 -18
- package/src/common/setStyle.ts +5 -5
- package/src/common/svg/config.ts +173 -173
- package/src/common/svg/index.ts +334 -334
- package/src/common/svg/tool.ts +43 -43
- package/src/common/webgl/buffer.ts +79 -79
- package/src/common/webgl/doDraw.ts +106 -106
- package/src/common/webgl/getColorFactory.ts +26 -26
- package/src/common/webgl/getShader.ts +75 -75
- package/src/common/webgl/getTexture.ts +11 -11
- package/src/common/webgl/getWebGLContext.ts +27 -27
- package/src/common/webgl/index.ts +216 -216
- package/src/common/webgl/shader.ts +75 -75
- package/src/common/webgl/texture.ts +99 -99
- package/src/getLoopColors.ts +42 -42
- package/src/interpolation/Cardinal.ts +109 -109
- package/src/interpolation/Hermite.ts +65 -65
- package/src/rotate.ts +7 -7
- package/src/ruler.ts +99 -99
- package/src/viewHandler.ts +139 -139
- package/types/Buffer.d.ts +23 -23
- package/types/Canvas.d.ts +288 -282
- package/types/CanvasConfig.d.ts +80 -80
- package/types/Cardinal.d.ts +13 -13
- package/types/Gradient.d.ts +14 -14
- package/types/Hermite.d.ts +18 -18
- package/types/Map.d.ts +9 -9
- package/types/Matrix4.d.ts +42 -42
- package/types/Object3D.d.ts +113 -113
- package/types/SVG.d.ts +210 -210
- package/types/SVGConfig.d.ts +58 -58
- package/types/Scene3D.d.ts +6 -6
- package/types/Shader.d.ts +15 -15
- package/types/Texture.d.ts +16 -16
- package/types/WebGL.d.ts +38 -38
- package/types/animation.d.ts +6 -6
- package/types/getLoopColors.d.ts +2 -2
- package/types/getWebGLContext.d.ts +2 -2
- package/types/index.d.ts +129 -129
- package/types/rotate.d.ts +2 -2
- package/types/ruler.d.ts +2 -2
- package/types/viewHandler.d.ts +12 -12
- package/uni-app/ui-canvas.vue +212 -212
|
@@ -1,157 +1,157 @@
|
|
|
1
|
-
import arc from "./arc"
|
|
2
|
-
import CanvasConfigType from "../../../types/CanvasConfig"
|
|
3
|
-
|
|
4
|
-
// 文字统一设置方法
|
|
5
|
-
export let initText = function (
|
|
6
|
-
painter: CanvasRenderingContext2D,
|
|
7
|
-
config: CanvasConfigType,
|
|
8
|
-
x: number,
|
|
9
|
-
y: number,
|
|
10
|
-
deg: number
|
|
11
|
-
) {
|
|
12
|
-
painter.beginPath();
|
|
13
|
-
painter.translate(x, y);
|
|
14
|
-
painter.rotate(deg);
|
|
15
|
-
painter.font =
|
|
16
|
-
config.fontStyle +
|
|
17
|
-
" " +
|
|
18
|
-
config.fontWeight +
|
|
19
|
-
" " +
|
|
20
|
-
config.fontSize +
|
|
21
|
-
"px " +
|
|
22
|
-
config.fontFamily;
|
|
23
|
-
return painter
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// 画弧统一设置方法
|
|
27
|
-
export let initArc = function (
|
|
28
|
-
painter: CanvasRenderingContext2D,
|
|
29
|
-
config: CanvasConfigType,
|
|
30
|
-
cx: number,
|
|
31
|
-
cy: number,
|
|
32
|
-
r1: number,
|
|
33
|
-
r2: number,
|
|
34
|
-
beginDeg: number,
|
|
35
|
-
deg: number
|
|
36
|
-
) {
|
|
37
|
-
if (r1 > r2) {
|
|
38
|
-
let temp = r1
|
|
39
|
-
r1 = r2
|
|
40
|
-
r2 = temp
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
beginDeg = beginDeg % (Math.PI * 2)
|
|
44
|
-
|
|
45
|
-
// 当|deg|>=2π的时候都认为是一个圆环
|
|
46
|
-
// 为什么不取2π比较,是怕部分浏览器浮点不精确
|
|
47
|
-
if (deg >= Math.PI * 1.999999 || deg <= -Math.PI * 1.999999) {
|
|
48
|
-
deg = Math.PI * 2
|
|
49
|
-
} else {
|
|
50
|
-
deg = deg % (Math.PI * 2)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
arc(
|
|
54
|
-
beginDeg,
|
|
55
|
-
deg,
|
|
56
|
-
cx,
|
|
57
|
-
cy,
|
|
58
|
-
r1,
|
|
59
|
-
r2,
|
|
60
|
-
function (
|
|
61
|
-
beginA: number,
|
|
62
|
-
endA: number,
|
|
63
|
-
begInnerX: number,
|
|
64
|
-
begInnerY: number,
|
|
65
|
-
begOuterX: number,
|
|
66
|
-
begOuterY: number,
|
|
67
|
-
endInnerX: number,
|
|
68
|
-
endInnerY: number,
|
|
69
|
-
endOuterX: number,
|
|
70
|
-
endOuterY: number,
|
|
71
|
-
r: number
|
|
72
|
-
) {
|
|
73
|
-
if (r < 0) r = -r
|
|
74
|
-
painter.beginPath()
|
|
75
|
-
painter.moveTo(begInnerX, begInnerY)
|
|
76
|
-
painter.arc(
|
|
77
|
-
// (圆心x,圆心y,半径,开始角度,结束角度,true逆时针/false顺时针)
|
|
78
|
-
cx,
|
|
79
|
-
cy,
|
|
80
|
-
r1,
|
|
81
|
-
beginA,
|
|
82
|
-
endA,
|
|
83
|
-
false
|
|
84
|
-
)
|
|
85
|
-
// 结尾
|
|
86
|
-
if (config.arcEndCap == "round")
|
|
87
|
-
painter.arc(
|
|
88
|
-
(endInnerX + endOuterX) * 0.5,
|
|
89
|
-
(endInnerY + endOuterY) * 0.5,
|
|
90
|
-
r,
|
|
91
|
-
endA - Math.PI,
|
|
92
|
-
endA,
|
|
93
|
-
true
|
|
94
|
-
)
|
|
95
|
-
else if (config.arcEndCap == "-round")
|
|
96
|
-
painter.arc(
|
|
97
|
-
(endInnerX + endOuterX) * 0.5,
|
|
98
|
-
(endInnerY + endOuterY) * 0.5,
|
|
99
|
-
r,
|
|
100
|
-
endA - Math.PI,
|
|
101
|
-
endA,
|
|
102
|
-
false
|
|
103
|
-
)
|
|
104
|
-
else painter.lineTo(endOuterX, endOuterY)
|
|
105
|
-
|
|
106
|
-
painter.arc(cx, cy, r2, endA, beginA, true)
|
|
107
|
-
// 开头
|
|
108
|
-
if (config.arcStartCap == "round")
|
|
109
|
-
painter.arc(
|
|
110
|
-
(begInnerX + begOuterX) * 0.5,
|
|
111
|
-
(begInnerY + begOuterY) * 0.5,
|
|
112
|
-
r,
|
|
113
|
-
beginA,
|
|
114
|
-
beginA - Math.PI,
|
|
115
|
-
true
|
|
116
|
-
)
|
|
117
|
-
else if (config.arcStartCap == "-round")
|
|
118
|
-
painter.arc(
|
|
119
|
-
(begInnerX + begOuterX) * 0.5,
|
|
120
|
-
(begInnerY + begOuterY) * 0.5,
|
|
121
|
-
r,
|
|
122
|
-
beginA,
|
|
123
|
-
beginA - Math.PI,
|
|
124
|
-
false
|
|
125
|
-
)
|
|
126
|
-
else painter.lineTo(begInnerX, begInnerY)
|
|
127
|
-
}
|
|
128
|
-
)
|
|
129
|
-
if (config.arcStartCap == "butt") painter.closePath()
|
|
130
|
-
return painter
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// 画圆统一设置方法
|
|
134
|
-
export let initCircle = function (
|
|
135
|
-
painter: CanvasRenderingContext2D,
|
|
136
|
-
cx: number,
|
|
137
|
-
cy: number,
|
|
138
|
-
r: number
|
|
139
|
-
) {
|
|
140
|
-
painter.beginPath()
|
|
141
|
-
painter.moveTo(cx + r, cy)
|
|
142
|
-
painter.arc(cx, cy, r, 0, Math.PI * 2)
|
|
143
|
-
return painter
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
// 画矩形统一设置方法
|
|
147
|
-
export let initRect = function (
|
|
148
|
-
painter: CanvasRenderingContext2D,
|
|
149
|
-
x: number,
|
|
150
|
-
y: number,
|
|
151
|
-
width: number,
|
|
152
|
-
height: number
|
|
153
|
-
) {
|
|
154
|
-
painter.beginPath()
|
|
155
|
-
painter.rect(x, y, width, height)
|
|
156
|
-
return painter
|
|
157
|
-
}
|
|
1
|
+
import arc from "./arc"
|
|
2
|
+
import CanvasConfigType from "../../../types/CanvasConfig"
|
|
3
|
+
|
|
4
|
+
// 文字统一设置方法
|
|
5
|
+
export let initText = function (
|
|
6
|
+
painter: CanvasRenderingContext2D,
|
|
7
|
+
config: CanvasConfigType,
|
|
8
|
+
x: number,
|
|
9
|
+
y: number,
|
|
10
|
+
deg: number
|
|
11
|
+
) {
|
|
12
|
+
painter.beginPath();
|
|
13
|
+
painter.translate(x, y);
|
|
14
|
+
painter.rotate(deg);
|
|
15
|
+
painter.font =
|
|
16
|
+
config.fontStyle +
|
|
17
|
+
" " +
|
|
18
|
+
config.fontWeight +
|
|
19
|
+
" " +
|
|
20
|
+
config.fontSize +
|
|
21
|
+
"px " +
|
|
22
|
+
config.fontFamily;
|
|
23
|
+
return painter
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// 画弧统一设置方法
|
|
27
|
+
export let initArc = function (
|
|
28
|
+
painter: CanvasRenderingContext2D,
|
|
29
|
+
config: CanvasConfigType,
|
|
30
|
+
cx: number,
|
|
31
|
+
cy: number,
|
|
32
|
+
r1: number,
|
|
33
|
+
r2: number,
|
|
34
|
+
beginDeg: number,
|
|
35
|
+
deg: number
|
|
36
|
+
) {
|
|
37
|
+
if (r1 > r2) {
|
|
38
|
+
let temp = r1
|
|
39
|
+
r1 = r2
|
|
40
|
+
r2 = temp
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
beginDeg = beginDeg % (Math.PI * 2)
|
|
44
|
+
|
|
45
|
+
// 当|deg|>=2π的时候都认为是一个圆环
|
|
46
|
+
// 为什么不取2π比较,是怕部分浏览器浮点不精确
|
|
47
|
+
if (deg >= Math.PI * 1.999999 || deg <= -Math.PI * 1.999999) {
|
|
48
|
+
deg = Math.PI * 2
|
|
49
|
+
} else {
|
|
50
|
+
deg = deg % (Math.PI * 2)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
arc(
|
|
54
|
+
beginDeg,
|
|
55
|
+
deg,
|
|
56
|
+
cx,
|
|
57
|
+
cy,
|
|
58
|
+
r1,
|
|
59
|
+
r2,
|
|
60
|
+
function (
|
|
61
|
+
beginA: number,
|
|
62
|
+
endA: number,
|
|
63
|
+
begInnerX: number,
|
|
64
|
+
begInnerY: number,
|
|
65
|
+
begOuterX: number,
|
|
66
|
+
begOuterY: number,
|
|
67
|
+
endInnerX: number,
|
|
68
|
+
endInnerY: number,
|
|
69
|
+
endOuterX: number,
|
|
70
|
+
endOuterY: number,
|
|
71
|
+
r: number
|
|
72
|
+
) {
|
|
73
|
+
if (r < 0) r = -r
|
|
74
|
+
painter.beginPath()
|
|
75
|
+
painter.moveTo(begInnerX, begInnerY)
|
|
76
|
+
painter.arc(
|
|
77
|
+
// (圆心x,圆心y,半径,开始角度,结束角度,true逆时针/false顺时针)
|
|
78
|
+
cx,
|
|
79
|
+
cy,
|
|
80
|
+
r1,
|
|
81
|
+
beginA,
|
|
82
|
+
endA,
|
|
83
|
+
false
|
|
84
|
+
)
|
|
85
|
+
// 结尾
|
|
86
|
+
if (config.arcEndCap == "round")
|
|
87
|
+
painter.arc(
|
|
88
|
+
(endInnerX + endOuterX) * 0.5,
|
|
89
|
+
(endInnerY + endOuterY) * 0.5,
|
|
90
|
+
r,
|
|
91
|
+
endA - Math.PI,
|
|
92
|
+
endA,
|
|
93
|
+
true
|
|
94
|
+
)
|
|
95
|
+
else if (config.arcEndCap == "-round")
|
|
96
|
+
painter.arc(
|
|
97
|
+
(endInnerX + endOuterX) * 0.5,
|
|
98
|
+
(endInnerY + endOuterY) * 0.5,
|
|
99
|
+
r,
|
|
100
|
+
endA - Math.PI,
|
|
101
|
+
endA,
|
|
102
|
+
false
|
|
103
|
+
)
|
|
104
|
+
else painter.lineTo(endOuterX, endOuterY)
|
|
105
|
+
|
|
106
|
+
painter.arc(cx, cy, r2, endA, beginA, true)
|
|
107
|
+
// 开头
|
|
108
|
+
if (config.arcStartCap == "round")
|
|
109
|
+
painter.arc(
|
|
110
|
+
(begInnerX + begOuterX) * 0.5,
|
|
111
|
+
(begInnerY + begOuterY) * 0.5,
|
|
112
|
+
r,
|
|
113
|
+
beginA,
|
|
114
|
+
beginA - Math.PI,
|
|
115
|
+
true
|
|
116
|
+
)
|
|
117
|
+
else if (config.arcStartCap == "-round")
|
|
118
|
+
painter.arc(
|
|
119
|
+
(begInnerX + begOuterX) * 0.5,
|
|
120
|
+
(begInnerY + begOuterY) * 0.5,
|
|
121
|
+
r,
|
|
122
|
+
beginA,
|
|
123
|
+
beginA - Math.PI,
|
|
124
|
+
false
|
|
125
|
+
)
|
|
126
|
+
else painter.lineTo(begInnerX, begInnerY)
|
|
127
|
+
}
|
|
128
|
+
)
|
|
129
|
+
if (config.arcStartCap == "butt") painter.closePath()
|
|
130
|
+
return painter
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// 画圆统一设置方法
|
|
134
|
+
export let initCircle = function (
|
|
135
|
+
painter: CanvasRenderingContext2D,
|
|
136
|
+
cx: number,
|
|
137
|
+
cy: number,
|
|
138
|
+
r: number
|
|
139
|
+
) {
|
|
140
|
+
painter.beginPath()
|
|
141
|
+
painter.moveTo(cx + r, cy)
|
|
142
|
+
painter.arc(cx, cy, r, 0, Math.PI * 2)
|
|
143
|
+
return painter
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
// 画矩形统一设置方法
|
|
147
|
+
export let initRect = function (
|
|
148
|
+
painter: CanvasRenderingContext2D,
|
|
149
|
+
x: number,
|
|
150
|
+
y: number,
|
|
151
|
+
width: number,
|
|
152
|
+
height: number
|
|
153
|
+
) {
|
|
154
|
+
painter.beginPath()
|
|
155
|
+
painter.rect(x, y, width, height)
|
|
156
|
+
return painter
|
|
157
|
+
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
// 线性渐变
|
|
2
|
-
export let linearGradient = function (painter: CanvasRenderingContext2D, x0: number, y0: number, x1: number, y1: number) {
|
|
3
|
-
let gradient = painter.createLinearGradient(x0, y0, x1, y1)
|
|
4
|
-
let enhanceGradient = {
|
|
5
|
-
"value": function () {
|
|
6
|
-
return gradient
|
|
7
|
-
},
|
|
8
|
-
"setColor": function (stop: number, color: string) {
|
|
9
|
-
gradient.addColorStop(stop, color)
|
|
10
|
-
return enhanceGradient
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
return enhanceGradient
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
// 环形渐变
|
|
17
|
-
export let radialGradient = function (painter: CanvasRenderingContext2D, cx: number, cy: number, r: number) {
|
|
18
|
-
let gradient = painter.createRadialGradient(cx, cy, 0, cx, cy, r)
|
|
19
|
-
let enhanceGradient = {
|
|
20
|
-
"value": function () {
|
|
21
|
-
return gradient
|
|
22
|
-
},
|
|
23
|
-
"setColor": function (stop: number, color: string) {
|
|
24
|
-
gradient.addColorStop(stop, color)
|
|
25
|
-
return enhanceGradient
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return enhanceGradient
|
|
29
|
-
}
|
|
1
|
+
// 线性渐变
|
|
2
|
+
export let linearGradient = function (painter: CanvasRenderingContext2D, x0: number, y0: number, x1: number, y1: number) {
|
|
3
|
+
let gradient = painter.createLinearGradient(x0, y0, x1, y1)
|
|
4
|
+
let enhanceGradient = {
|
|
5
|
+
"value": function () {
|
|
6
|
+
return gradient
|
|
7
|
+
},
|
|
8
|
+
"setColor": function (stop: number, color: string) {
|
|
9
|
+
gradient.addColorStop(stop, color)
|
|
10
|
+
return enhanceGradient
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
return enhanceGradient
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// 环形渐变
|
|
17
|
+
export let radialGradient = function (painter: CanvasRenderingContext2D, cx: number, cy: number, r: number) {
|
|
18
|
+
let gradient = painter.createRadialGradient(cx, cy, 0, cx, cy, r)
|
|
19
|
+
let enhanceGradient = {
|
|
20
|
+
"value": function () {
|
|
21
|
+
return gradient
|
|
22
|
+
},
|
|
23
|
+
"setColor": function (stop: number, color: string) {
|
|
24
|
+
gradient.addColorStop(stop, color)
|
|
25
|
+
return enhanceGradient
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return enhanceGradient
|
|
29
|
+
}
|
|
@@ -2,6 +2,7 @@ import CanvasConfigType from "../../../types/CanvasConfig"
|
|
|
2
2
|
import PainterRender from "./painter"
|
|
3
3
|
import assemble from "../assemble"
|
|
4
4
|
import { linearGradient, radialGradient } from "./gradient"
|
|
5
|
+
import { initText } from './config'
|
|
5
6
|
|
|
6
7
|
// 属性名向下兼容
|
|
7
8
|
let oldAttrName = {
|
|
@@ -105,6 +106,19 @@ class Canvas extends PainterRender {
|
|
|
105
106
|
})
|
|
106
107
|
}
|
|
107
108
|
|
|
109
|
+
textWidth(text: string) {
|
|
110
|
+
this.painter.save()
|
|
111
|
+
|
|
112
|
+
initText(this.painter, this.__specialConfig, 0, 0, 0)
|
|
113
|
+
|
|
114
|
+
// 虽然我们限制了只可以输入字符串,可是不代表所有环境都可以保证,为了确保方法不失效,强转成字符串
|
|
115
|
+
let width = this.painter.measureText(text + "").width
|
|
116
|
+
|
|
117
|
+
this.painter.restore()
|
|
118
|
+
|
|
119
|
+
return width
|
|
120
|
+
}
|
|
121
|
+
|
|
108
122
|
// 获取原始画笔
|
|
109
123
|
getContext(isRegion = false) {
|
|
110
124
|
return isRegion ? this.__region.painter : this.painter
|