vislite 0.2.0 → 0.3.0-alpha.1

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.
Files changed (88) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +27 -1
  3. package/LICENSE +20 -20
  4. package/README.md +53 -53
  5. package/lib/Canvas/index.umd.js +87 -14
  6. package/lib/Canvas/index.umd.min.js +3 -3
  7. package/lib/Cardinal/index.umd.js +16 -5
  8. package/lib/Cardinal/index.umd.min.js +3 -3
  9. package/lib/Eoap/index.umd.js +2 -2
  10. package/lib/Eoap/index.umd.min.js +2 -2
  11. package/lib/Hermite/index.umd.js +2 -2
  12. package/lib/Hermite/index.umd.min.js +2 -2
  13. package/lib/Matrix4/index.umd.js +2 -2
  14. package/lib/Matrix4/index.umd.min.js +2 -2
  15. package/lib/Mercator/index.umd.js +2 -2
  16. package/lib/Mercator/index.umd.min.js +2 -2
  17. package/lib/OralCanvas/index.es.js +87 -14
  18. package/lib/OralCanvas/index.es.min.js +3 -3
  19. package/lib/OralWebGL/index.es.js +17 -6
  20. package/lib/OralWebGL/index.es.min.js +3 -3
  21. package/lib/SVG/index.umd.js +78 -62
  22. package/lib/SVG/index.umd.min.js +3 -3
  23. package/lib/WebGL/index.umd.js +15 -6
  24. package/lib/WebGL/index.umd.min.js +3 -3
  25. package/lib/animation/index.umd.js +2 -2
  26. package/lib/animation/index.umd.min.js +2 -2
  27. package/lib/getLoopColors/index.umd.js +2 -2
  28. package/lib/getLoopColors/index.umd.min.js +2 -2
  29. package/lib/index.umd.js +190 -81
  30. package/lib/index.umd.min.js +3 -3
  31. package/lib/rotate/index.umd.js +2 -2
  32. package/lib/rotate/index.umd.min.js +2 -2
  33. package/lib/ruler/index.umd.js +2 -2
  34. package/lib/ruler/index.umd.min.js +2 -2
  35. package/lib/viewHandler/index.umd.js +2 -2
  36. package/lib/viewHandler/index.umd.min.js +2 -2
  37. package/miniprogram/ui-canvas/index.json +4 -4
  38. package/miniprogram/ui-canvas/index.wxml +4 -4
  39. package/miniprogram/ui-canvas/index.wxss +5 -5
  40. package/package/Canvas/index.ts +1 -1
  41. package/package/Cardinal/index.ts +2 -2
  42. package/package/Eoap/index.ts +2 -2
  43. package/package/Hermite/index.ts +2 -2
  44. package/package/Matrix4/index.ts +2 -2
  45. package/package/OralCanvas/index.ts +1 -1
  46. package/package/OralWebGL/index.ts +1 -1
  47. package/package/SVG/index.ts +2 -2
  48. package/package/animation/index.ts +2 -2
  49. package/package/getLoopColors/index.ts +2 -2
  50. package/package/rotate/index.ts +2 -2
  51. package/package/ruler/index.ts +2 -2
  52. package/package.json +4 -4
  53. package/src/Matrix4/index.ts +76 -76
  54. package/src/Matrix4/move.ts +12 -12
  55. package/src/Matrix4/rotate.ts +15 -15
  56. package/src/Matrix4/scale.ts +11 -11
  57. package/src/Matrix4/transform.ts +64 -64
  58. package/src/animation.ts +99 -99
  59. package/src/common/canvas/arc.ts +50 -50
  60. package/src/common/canvas/config.ts +142 -61
  61. package/src/common/canvas/gradient.ts +29 -0
  62. package/src/common/canvas/index.ts +122 -82
  63. package/src/common/canvas/painter.ts +12 -0
  64. package/src/common/setStyle.ts +5 -5
  65. package/src/common/svg/config.ts +173 -128
  66. package/src/common/svg/index.ts +315 -266
  67. package/src/common/svg/tool.ts +43 -43
  68. package/src/common/webgl/doDraw.ts +13 -3
  69. package/src/common/webgl/getShader.ts +6 -0
  70. package/src/common/webgl/index.ts +4 -0
  71. package/src/getLoopColors.ts +42 -42
  72. package/src/interpolation/Cardinal.ts +109 -91
  73. package/src/interpolation/Hermite.ts +65 -65
  74. package/src/rotate.ts +7 -7
  75. package/src/ruler.ts +99 -99
  76. package/types/Canvas.d.ts +282 -221
  77. package/types/CanvasConfig.d.ts +3 -3
  78. package/types/Cardinal.d.ts +13 -13
  79. package/types/Gradient.d.ts +15 -0
  80. package/types/Hermite.d.ts +18 -18
  81. package/types/Matrix4.d.ts +42 -42
  82. package/types/Object3D.d.ts +7 -0
  83. package/types/SVG.d.ts +210 -210
  84. package/types/animation.d.ts +6 -6
  85. package/types/getLoopColors.d.ts +2 -2
  86. package/types/rotate.d.ts +2 -2
  87. package/types/ruler.d.ts +2 -2
  88. package/uni-app/ui-canvas.vue +22 -46
package/types/Canvas.d.ts CHANGED
@@ -1,221 +1,282 @@
1
- import CanvasConfigType from './CanvasConfig'
2
-
3
- export default interface CanvasType {
4
-
5
- /**
6
- * 配置画笔
7
- */
8
- config(configs: CanvasConfigType): this
9
-
10
- /**
11
- * 绘制一个实心文字
12
- * @param text 需要绘制的文字
13
- * @param x 绘制位置的x坐标
14
- * @param y 绘制位置的y坐标
15
- * @param deg 可选,文字旋转角度
16
- */
17
- fillText(text: any, x: number, y: number, deg?: number): this
18
-
19
- /**
20
- * 绘制一个空心文字
21
- * @param text 需要绘制的文字
22
- * @param x 绘制位置的x坐标
23
- * @param y 绘制位置的y坐标
24
- * @param deg 可选,文字旋转角度
25
- */
26
- strokeText(text: any, x: number, y: number, deg?: number): this
27
-
28
- /**
29
- * 绘制一个空实心文字
30
- * @param text 需要绘制的文字
31
- * @param x 绘制位置的x坐标
32
- * @param y 绘制位置的y坐标
33
- * @param deg 可选,文字旋转角度
34
- */
35
- fullText(text: any, x: number, y: number, deg?: number): this
36
-
37
- /**
38
- * 绘制一个实心的圆弧
39
- * @param cx 圆弧的圆心x坐标
40
- * @param cy 圆弧的圆心y坐标
41
- * @param r1 圆弧的内半径
42
- * @param r2 圆弧的外半径
43
- * @param beginDeg 开始弧度
44
- * @param deg 跨越弧度
45
- */
46
- fillArc(cx: number, cy: number, r1: number, r2: number, beginDeg: number, deg: number): this
47
-
48
- /**
49
- * 绘制一个空心的圆弧
50
- * @param cx 圆弧的圆心x坐标
51
- * @param cy 圆弧的圆心y坐标
52
- * @param r1 圆弧的内半径
53
- * @param r2 圆弧的外半径
54
- * @param beginDeg 开始弧度
55
- * @param deg 跨越弧度
56
- */
57
- strokeArc(cx: number, cy: number, r1: number, r2: number, beginDeg: number, deg: number): this
58
-
59
- /**
60
- * 绘制一个空实心的圆弧
61
- * @param cx 圆弧的圆心x坐标
62
- * @param cy 圆弧的圆心y坐标
63
- * @param r1 圆弧的内半径
64
- * @param r2 圆弧的外半径
65
- * @param beginDeg 开始弧度
66
- * @param deg 跨越弧度
67
- */
68
- fullArc(cx: number, cy: number, r1: number, r2: number, beginDeg: number, deg: number): this
69
-
70
- /**
71
- * 绘制一个实心的圆
72
- * @param cx 圆心x坐标
73
- * @param cy 圆心y坐标
74
- * @param r 圆的半径
75
- */
76
- fillCircle(cx: number, cy: number, r: number): this
77
-
78
- /**
79
- * 绘制一个空心的圆
80
- * @param cx 圆心x坐标
81
- * @param cy 圆心y坐标
82
- * @param r 圆的半径
83
- */
84
- strokeCircle(cx: number, cy: number, r: number): this
85
-
86
- /**
87
- * 绘制一个空实心的圆
88
- * @param cx 圆心x坐标
89
- * @param cy 圆心y坐标
90
- * @param r 圆的半径
91
- */
92
- fullCircle(cx: number, cy: number, r: number): this
93
-
94
- /**
95
- * 绘制一个实心的矩形
96
- * @param x 可选,区域左上角X坐标
97
- * @param y 可选,区域左上角y坐标
98
- * @param width 可选,区域的宽
99
- * @param height 可选,区域的高
100
- */
101
- fillRect(x: number, y: number, width: number, height: number): this
102
-
103
- /**
104
- * 绘制一个空心的矩形
105
- * @param x 可选,区域左上角X坐标
106
- * @param y 可选,区域左上角y坐标
107
- * @param width 可选,区域的宽
108
- * @param height 可选,区域的高
109
- */
110
- strokeRect(x: number, y: number, width: number, height: number): this
111
-
112
- /**
113
- * 绘制一个空实心的矩形
114
- * @param x 可选,区域左上角X坐标
115
- * @param y 可选,区域左上角y坐标
116
- * @param width 可选,区域的宽
117
- * @param height 可选,区域的高
118
- */
119
- fullRect(x: number, y: number, width: number, height: number): this
120
-
121
- /**
122
- * 开始一段独立的路径
123
- */
124
- beginPath(): this
125
-
126
- /**
127
- * 闭合当前路径,也就是路径首尾闭合
128
- */
129
- closePath(): this
130
-
131
- /**
132
- * 画笔移动到点(x, y),此时笔离开了画布
133
- */
134
- moveTo(x: number, y: number): this
135
-
136
- /**
137
- * 画笔移动到点(x, y),此时笔没有离开画布
138
- */
139
- lineTo(x: number, y: number): this
140
-
141
- /**
142
- * 以(cx, cy)为圆心,半径r,从弧度beginDeg开始,跨越弧度deg画弧,此时笔没有离开画布
143
- */
144
- arc(cx: number, cy: number, r: number, beginDeg: number, deg: number): this
145
-
146
- /**
147
- * 把当前路径包裹的区域填充颜色
148
- */
149
- fill(): this
150
-
151
- /**
152
- * 把当前路径上色(轮廓线)
153
- */
154
- stroke(): this
155
-
156
- /**
157
- * 把当前路径画上轮廓线并填充颜色到当前路径所包裹的区域
158
- */
159
- full(): this
160
-
161
- /**
162
- * 二次贝塞尔曲线到
163
- * @param cpx 控制点x坐标
164
- * @param cpy 控制点y坐标
165
- * @param x 终点x坐标
166
- * @param y 终点y坐标
167
- */
168
- quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): this
169
-
170
- /**
171
- * 三次贝塞尔曲线到
172
- * @param cpx1 控制点1的x坐标
173
- * @param cpy1 控制点1的y坐标
174
- * @param cpx2 控制点2的x坐标
175
- * @param cpy2 控制点2的y坐标
176
- * @param x 终点x坐标
177
- * @param y 终点y坐标
178
- */
179
- bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): this
180
-
181
- /**
182
- * 保存当前的绘图状态
183
- */
184
- save(): this
185
-
186
- /**
187
- * 恢复之前保存的绘图状态
188
- */
189
- restore(): this
190
-
191
- /**
192
- * 擦除画笔上的一个矩形区域
193
- * @param x 区域左上角X坐标
194
- * @param y 区域左上角y坐标
195
- * @param w 区域的宽
196
- * @param h 区域的高
197
- */
198
- clearRect(x: number, y: number, w: number, h: number): this
199
-
200
- /**
201
- * 设置区域
202
- */
203
- setRegion(regionName: string | number): this
204
-
205
- /**
206
- * 获取区域
207
- */
208
- getRegion(x: number, y: number): Promise<string>
209
-
210
- /**
211
- * 把画布变成url
212
- */
213
- toDataURL(): Promise<string>
214
-
215
- /**
216
- * 获取原生画笔
217
- * @param isRegion 是否是区域
218
- */
219
- getContext(isRegion?: boolean): CanvasRenderingContext2D
220
-
221
- }
1
+ import CanvasConfigType from "./CanvasConfig"
2
+ import GradientType from "./Gradient"
3
+
4
+ export default interface CanvasType {
5
+ /**
6
+ * 配置画笔
7
+ */
8
+ config(configs: CanvasConfigType): this
9
+
10
+ /**
11
+ * 绘制一个实心文字
12
+ * @param text 需要绘制的文字
13
+ * @param x 绘制位置的x坐标
14
+ * @param y 绘制位置的y坐标
15
+ * @param deg 可选,文字旋转角度
16
+ */
17
+ fillText(text: any, x: number, y: number, deg?: number): this
18
+
19
+ /**
20
+ * 绘制一个空心文字
21
+ * @param text 需要绘制的文字
22
+ * @param x 绘制位置的x坐标
23
+ * @param y 绘制位置的y坐标
24
+ * @param deg 可选,文字旋转角度
25
+ */
26
+ strokeText(text: any, x: number, y: number, deg?: number): this
27
+
28
+ /**
29
+ * 绘制一个空实心文字
30
+ * @param text 需要绘制的文字
31
+ * @param x 绘制位置的x坐标
32
+ * @param y 绘制位置的y坐标
33
+ * @param deg 可选,文字旋转角度
34
+ */
35
+ fullText(text: any, x: number, y: number, deg?: number): this
36
+
37
+ /**
38
+ * 绘制一个实心的圆弧
39
+ * @param cx 圆弧的圆心x坐标
40
+ * @param cy 圆弧的圆心y坐标
41
+ * @param r1 圆弧的内半径
42
+ * @param r2 圆弧的外半径
43
+ * @param beginDeg 开始弧度
44
+ * @param deg 跨越弧度
45
+ */
46
+ fillArc(
47
+ cx: number,
48
+ cy: number,
49
+ r1: number,
50
+ r2: number,
51
+ beginDeg: number,
52
+ deg: number
53
+ ): this
54
+
55
+ /**
56
+ * 绘制一个空心的圆弧
57
+ * @param cx 圆弧的圆心x坐标
58
+ * @param cy 圆弧的圆心y坐标
59
+ * @param r1 圆弧的内半径
60
+ * @param r2 圆弧的外半径
61
+ * @param beginDeg 开始弧度
62
+ * @param deg 跨越弧度
63
+ */
64
+ strokeArc(
65
+ cx: number,
66
+ cy: number,
67
+ r1: number,
68
+ r2: number,
69
+ beginDeg: number,
70
+ deg: number
71
+ ): this
72
+
73
+ /**
74
+ * 绘制一个空实心的圆弧
75
+ * @param cx 圆弧的圆心x坐标
76
+ * @param cy 圆弧的圆心y坐标
77
+ * @param r1 圆弧的内半径
78
+ * @param r2 圆弧的外半径
79
+ * @param beginDeg 开始弧度
80
+ * @param deg 跨越弧度
81
+ */
82
+ fullArc(
83
+ cx: number,
84
+ cy: number,
85
+ r1: number,
86
+ r2: number,
87
+ beginDeg: number,
88
+ deg: number
89
+ ): this
90
+
91
+ /**
92
+ * 绘制一个实心的圆
93
+ * @param cx 圆心x坐标
94
+ * @param cy 圆心y坐标
95
+ * @param r 圆的半径
96
+ */
97
+ fillCircle(cx: number, cy: number, r: number): this
98
+
99
+ /**
100
+ * 绘制一个空心的圆
101
+ * @param cx 圆心x坐标
102
+ * @param cy 圆心y坐标
103
+ * @param r 圆的半径
104
+ */
105
+ strokeCircle(cx: number, cy: number, r: number): this
106
+
107
+ /**
108
+ * 绘制一个空实心的圆
109
+ * @param cx 圆心x坐标
110
+ * @param cy 圆心y坐标
111
+ * @param r 圆的半径
112
+ */
113
+ fullCircle(cx: number, cy: number, r: number): this
114
+
115
+ /**
116
+ * 绘制一个实心的矩形
117
+ * @param x 可选,区域左上角X坐标
118
+ * @param y 可选,区域左上角y坐标
119
+ * @param width 可选,区域的宽
120
+ * @param height 可选,区域的高
121
+ */
122
+ fillRect(x: number, y: number, width: number, height: number): this
123
+
124
+ /**
125
+ * 绘制一个空心的矩形
126
+ * @param x 可选,区域左上角X坐标
127
+ * @param y 可选,区域左上角y坐标
128
+ * @param width 可选,区域的宽
129
+ * @param height 可选,区域的高
130
+ */
131
+ strokeRect(x: number, y: number, width: number, height: number): this
132
+
133
+ /**
134
+ * 绘制一个空实心的矩形
135
+ * @param x 可选,区域左上角X坐标
136
+ * @param y 可选,区域左上角y坐标
137
+ * @param width 可选,区域的宽
138
+ * @param height 可选,区域的高
139
+ */
140
+ fullRect(x: number, y: number, width: number, height: number): this
141
+
142
+ /**
143
+ * 开始一段独立的路径
144
+ */
145
+ beginPath(): this
146
+
147
+ /**
148
+ * 闭合当前路径,也就是路径首尾闭合
149
+ */
150
+ closePath(): this
151
+
152
+ /**
153
+ * 画笔移动到点(x, y),此时笔离开了画布
154
+ */
155
+ moveTo(x: number, y: number): this
156
+
157
+ /**
158
+ * 画笔移动到点(x, y),此时笔没有离开画布
159
+ */
160
+ lineTo(x: number, y: number): this
161
+
162
+ /**
163
+ * 以(cx, cy)为圆心,半径r,从弧度beginDeg开始,跨越弧度deg画弧,此时笔没有离开画布
164
+ */
165
+ arc(cx: number, cy: number, r: number, beginDeg: number, deg: number): this
166
+
167
+ /**
168
+ * 把当前路径包裹的区域填充颜色
169
+ */
170
+ fill(): this
171
+
172
+ /**
173
+ * 把当前路径上色(轮廓线)
174
+ */
175
+ stroke(): this
176
+
177
+ /**
178
+ * 把当前路径画上轮廓线并填充颜色到当前路径所包裹的区域
179
+ */
180
+ full(): this
181
+
182
+ /**
183
+ * 二次贝塞尔曲线到
184
+ * @param cpx 控制点x坐标
185
+ * @param cpy 控制点y坐标
186
+ * @param x 终点x坐标
187
+ * @param y 终点y坐标
188
+ */
189
+ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): this
190
+
191
+ /**
192
+ * 三次贝塞尔曲线到
193
+ * @param cpx1 控制点1的x坐标
194
+ * @param cpy1 控制点1的y坐标
195
+ * @param cpx2 控制点2的x坐标
196
+ * @param cpy2 控制点2的y坐标
197
+ * @param x 终点x坐标
198
+ * @param y 终点y坐标
199
+ */
200
+ bezierCurveTo(
201
+ cp1x: number,
202
+ cp1y: number,
203
+ cp2x: number,
204
+ cp2y: number,
205
+ x: number,
206
+ y: number
207
+ ): this
208
+
209
+ /**
210
+ * 保存当前的绘图状态
211
+ */
212
+ save(): this
213
+
214
+ /**
215
+ * 恢复之前保存的绘图状态
216
+ */
217
+ restore(): this
218
+
219
+ /**
220
+ * 生成裁剪区域
221
+ */
222
+ clip(): this
223
+
224
+ /**
225
+ * 擦除画笔上的一个矩形区域
226
+ * @param x 区域左上角X坐标
227
+ * @param y 区域左上角y坐标
228
+ * @param w 区域的宽
229
+ * @param h 区域的高
230
+ */
231
+ clearRect(x: number, y: number, w: number, h: number): this
232
+
233
+ /**
234
+ * 设置区域
235
+ */
236
+ setRegion(regionName: string | number): this
237
+
238
+ /**
239
+ * 获取区域
240
+ */
241
+ getRegion(x: number, y: number): Promise<string>
242
+
243
+ /**
244
+ * 把画布变成url
245
+ */
246
+ toDataURL(): Promise<string>
247
+
248
+ /**
249
+ * 获取原生画笔
250
+ * @param isRegion 是否是区域
251
+ */
252
+ getContext(isRegion?: boolean): CanvasRenderingContext2D
253
+
254
+ /**
255
+ * 创建线性渐变
256
+ * @param x0 起点
257
+ * @param y0
258
+ * @param x1 终点
259
+ * @param y1
260
+ */
261
+ createLinearGradient(
262
+ x0: number,
263
+ y0: number,
264
+ x1: number,
265
+ y1: number
266
+ ): GradientType
267
+
268
+ /**
269
+ * 创建环形渐变
270
+ * @param cx 中心
271
+ * @param cy
272
+ * @param r 半径
273
+ */
274
+ createRadialGradient(cx: number, cy: number, r: number): GradientType
275
+
276
+ /**
277
+ * 获取指定位置颜色
278
+ * @param x
279
+ * @param y
280
+ */
281
+ getColor(x: number, y: number): string
282
+ }
@@ -3,12 +3,12 @@ export default interface CanvasConfigType {
3
3
  /**
4
4
  * 填充色或图案,默认"#000"
5
5
  */
6
- fillStyle?: string
6
+ fillStyle?: string | CanvasGradient
7
7
 
8
8
  /**
9
9
  * 轮廓色或图案,默认"#000"
10
10
  */
11
- strokeStyle?: string
11
+ strokeStyle?: string | CanvasGradient
12
12
 
13
13
  /**
14
14
  * 线条宽度,默认1(单位px)
@@ -40,7 +40,7 @@ export default interface CanvasConfigType {
40
40
  /**
41
41
  * 阴影的颜色
42
42
  */
43
- shadowColor?: string
43
+ shadowColor?: string | CanvasGradient
44
44
 
45
45
  /**
46
46
  * 文字大小,默认16
@@ -1,14 +1,14 @@
1
- export default interface CardinalType {
2
-
3
- /**
4
- * 设置点的位置:
5
- * @param points 参数格式:[[x1, y1], [x2, y2], ... ],至少两个点
6
- */
7
- setP(points: number[][]): this
8
-
9
- /**
10
- * 根据x值返回y值:
11
- */
12
- use(x: number): number
13
-
1
+ export default interface CardinalType {
2
+
3
+ /**
4
+ * 设置点的位置:
5
+ * @param points 参数格式:[[x1, y1], [x2, y2], ... ],至少两个点
6
+ */
7
+ setP(points: number[][]): this
8
+
9
+ /**
10
+ * 根据x值返回y值:
11
+ */
12
+ use(x: number): number
13
+
14
14
  }
@@ -0,0 +1,15 @@
1
+ export default interface GradientType {
2
+
3
+ /**
4
+ * 设置程度颜色
5
+ * @param stop 程度
6
+ * @param color 颜色
7
+ */
8
+ setColor(stop: number, color: string): this
9
+
10
+ /**
11
+ * 返回渐变色值
12
+ */
13
+ value(): CanvasGradient
14
+
15
+ }
@@ -1,19 +1,19 @@
1
- export default interface HermiteType {
2
-
3
- /**
4
- * 设置点的位置和斜率:
5
- * @param x1 左边点的位置
6
- * @param y1
7
- * @param x2 右边点的位置
8
- * @param y2
9
- * @param s1 两个点的斜率
10
- * @param s2
11
- */
12
- setP(x1: number, y1: number, x2: number, y2: number, s1: number, s2: number): this
13
-
14
- /**
15
- * 根据x值返回y值:
16
- */
17
- use(x: number): number
18
-
1
+ export default interface HermiteType {
2
+
3
+ /**
4
+ * 设置点的位置和斜率:
5
+ * @param x1 左边点的位置
6
+ * @param y1
7
+ * @param x2 右边点的位置
8
+ * @param y2
9
+ * @param s1 两个点的斜率
10
+ * @param s2
11
+ */
12
+ setP(x1: number, y1: number, x2: number, y2: number, s1: number, s2: number): this
13
+
14
+ /**
15
+ * 根据x值返回y值:
16
+ */
17
+ use(x: number): number
18
+
19
19
  }