vislite 1.2.0 → 1.2.1-alpha.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.
Files changed (162) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +279 -274
  3. package/LICENSE +20 -20
  4. package/README.md +175 -175
  5. package/lib/Buffer/index.es.js +1 -1
  6. package/lib/Buffer/index.es.min.js +1 -1
  7. package/lib/Canvas/index.es.js +1 -1
  8. package/lib/Canvas/index.es.min.js +1 -1
  9. package/lib/Cardinal/index.es.js +1 -1
  10. package/lib/Cardinal/index.es.min.js +1 -1
  11. package/lib/Eoap/index.es.js +1 -1
  12. package/lib/Eoap/index.es.min.js +1 -1
  13. package/lib/Hermite/index.es.js +1 -1
  14. package/lib/Hermite/index.es.min.js +1 -1
  15. package/lib/Matrix4/index.es.js +1 -1
  16. package/lib/Matrix4/index.es.min.js +1 -1
  17. package/lib/Mercator/index.es.js +1 -1
  18. package/lib/Mercator/index.es.min.js +1 -1
  19. package/lib/RawCanvas/index.es.js +1 -1
  20. package/lib/RawCanvas/index.es.min.js +1 -1
  21. package/lib/SVG/index.es.js +1 -1
  22. package/lib/SVG/index.es.min.js +1 -1
  23. package/lib/Shader/index.es.js +1 -1
  24. package/lib/Shader/index.es.min.js +1 -1
  25. package/lib/Texture/index.es.js +1 -1
  26. package/lib/Texture/index.es.min.js +1 -1
  27. package/lib/TreeLayout/index.es.js +1 -1
  28. package/lib/TreeLayout/index.es.min.js +1 -1
  29. package/lib/animation/index.es.js +1 -1
  30. package/lib/animation/index.es.min.js +1 -1
  31. package/lib/assemble/index.es.js +1 -1
  32. package/lib/assemble/index.es.min.js +1 -1
  33. package/lib/getLoopColors/index.es.js +1 -1
  34. package/lib/getLoopColors/index.es.min.js +1 -1
  35. package/lib/getWebGLContext/index.es.js +1 -1
  36. package/lib/getWebGLContext/index.es.min.js +1 -1
  37. package/lib/index.umd.js +1 -1
  38. package/lib/index.umd.min.js +1 -1
  39. package/lib/initOption/index.es.js +1 -1
  40. package/lib/initOption/index.es.min.js +1 -1
  41. package/lib/mergeOption/index.es.js +1 -1
  42. package/lib/mergeOption/index.es.min.js +1 -1
  43. package/lib/move/index.es.js +1 -1
  44. package/lib/move/index.es.min.js +1 -1
  45. package/lib/rotate/index.es.js +1 -1
  46. package/lib/rotate/index.es.min.js +1 -1
  47. package/lib/ruler/index.es.js +1 -1
  48. package/lib/ruler/index.es.min.js +1 -1
  49. package/lib/scale/index.es.js +1 -1
  50. package/lib/scale/index.es.min.js +1 -1
  51. package/lib/throttle/index.es.js +1 -1
  52. package/lib/throttle/index.es.min.js +1 -1
  53. package/minialipay/ui-canvas/drawImage.js +35 -35
  54. package/minialipay/ui-canvas/index.acss +4 -4
  55. package/minialipay/ui-canvas/index.axml +3 -3
  56. package/minialipay/ui-canvas/index.d.ts +1 -1
  57. package/minialipay/ui-canvas/index.js +100 -100
  58. package/minialipay/ui-canvas/index.json +6 -6
  59. package/miniprogram/ui-canvas/drawImage.js +35 -35
  60. package/miniprogram/ui-canvas/index.js +117 -117
  61. package/miniprogram/ui-canvas/index.json +4 -4
  62. package/miniprogram/ui-canvas/index.wxml +4 -4
  63. package/miniprogram/ui-canvas/index.wxss +5 -5
  64. package/package/Buffer/index.ts +2 -2
  65. package/package/Canvas/index.ts +2 -2
  66. package/package/Cardinal/index.ts +2 -2
  67. package/package/Eoap/index.ts +2 -2
  68. package/package/Hermite/index.ts +2 -2
  69. package/package/Matrix4/index.ts +2 -2
  70. package/package/Mercator/index.ts +2 -2
  71. package/package/RawCanvas/index.ts +2 -2
  72. package/package/SVG/index.ts +2 -2
  73. package/package/Shader/index.ts +2 -2
  74. package/package/Texture/index.ts +2 -2
  75. package/package/TreeLayout/index.ts +2 -2
  76. package/package/animation/index.ts +2 -2
  77. package/package/assemble/index.ts +2 -2
  78. package/package/getLoopColors/index.ts +2 -2
  79. package/package/getWebGLContext/index.ts +40 -40
  80. package/package/index.ts +75 -75
  81. package/package/initOption/index.ts +2 -2
  82. package/package/mergeOption/index.ts +2 -2
  83. package/package/move/index.ts +2 -2
  84. package/package/rotate/index.ts +2 -2
  85. package/package/ruler/index.ts +2 -2
  86. package/package/scale/index.ts +2 -2
  87. package/package/throttle/index.ts +2 -2
  88. package/package.json +78 -78
  89. package/src/Canvas.ts +84 -84
  90. package/src/Eoap.ts +66 -66
  91. package/src/Matrix4/index.ts +84 -84
  92. package/src/Matrix4/move.ts +12 -12
  93. package/src/Matrix4/rotate.ts +15 -15
  94. package/src/Matrix4/scale.ts +11 -11
  95. package/src/Matrix4/transform.ts +64 -64
  96. package/src/Mercator.ts +27 -27
  97. package/src/SVG.ts +24 -24
  98. package/src/common/assemble.ts +22 -22
  99. package/src/common/canvas/arc.ts +51 -51
  100. package/src/common/canvas/config.ts +158 -158
  101. package/src/common/canvas/default.ts +61 -61
  102. package/src/common/canvas/gradient.ts +31 -31
  103. package/src/common/canvas/index.ts +188 -188
  104. package/src/common/canvas/painter.ts +430 -430
  105. package/src/common/canvas/texts.ts +18 -18
  106. package/src/common/option.ts +29 -29
  107. package/src/common/setStyle.ts +5 -5
  108. package/src/common/svg/config.ts +194 -194
  109. package/src/common/svg/default.ts +26 -26
  110. package/src/common/svg/gradient.ts +53 -53
  111. package/src/common/svg/index.ts +332 -332
  112. package/src/common/svg/tool.ts +42 -42
  113. package/src/common/tree/index.ts +25 -25
  114. package/src/common/tree/toInnerTree.ts +59 -59
  115. package/src/common/tree/toPlainTree.ts +132 -132
  116. package/src/common/type.ts +26 -26
  117. package/src/common/webgl/buffer.ts +79 -79
  118. package/src/common/webgl/getWebGLContext.ts +45 -45
  119. package/src/common/webgl/shader.ts +75 -75
  120. package/src/common/webgl/texture.ts +97 -97
  121. package/src/getLoopColors.ts +42 -42
  122. package/src/interpolation/Cardinal.ts +110 -110
  123. package/src/interpolation/Hermite.ts +65 -65
  124. package/src/layout/TreeLayout.ts +188 -188
  125. package/src/move.ts +7 -7
  126. package/src/rotate.ts +7 -7
  127. package/src/ruler.ts +209 -209
  128. package/src/scale.ts +6 -6
  129. package/types/Buffer.d.ts +23 -23
  130. package/types/Canvas.d.ts +344 -344
  131. package/types/CanvasConfig.d.ts +116 -116
  132. package/types/CanvasOption.d.ts +8 -8
  133. package/types/CanvasOpts.d.ts +9 -9
  134. package/types/Cardinal.d.ts +13 -13
  135. package/types/Gradient.d.ts +14 -14
  136. package/types/Hermite.d.ts +18 -18
  137. package/types/Map.d.ts +9 -9
  138. package/types/Matrix4.d.ts +47 -47
  139. package/types/SVG.d.ts +243 -243
  140. package/types/SVGConfig.d.ts +89 -89
  141. package/types/Shader.d.ts +16 -16
  142. package/types/Texture.d.ts +16 -16
  143. package/types/Tree.d.ts +69 -69
  144. package/types/TreeConfig.d.ts +36 -36
  145. package/types/TreeLayout.d.ts +54 -54
  146. package/types/TreeOption.d.ts +48 -48
  147. package/types/animation.d.ts +5 -5
  148. package/types/assemble.d.ts +5 -5
  149. package/types/getLoopColors.d.ts +5 -5
  150. package/types/getWebGLContext.d.ts +7 -7
  151. package/types/index.d.ts +165 -160
  152. package/types/move.d.ts +5 -5
  153. package/types/option.d.ts +12 -12
  154. package/types/painterConfig.d.ts +4 -4
  155. package/types/rotate.d.ts +5 -5
  156. package/types/ruler.d.ts +10 -10
  157. package/types/scale.d.ts +5 -5
  158. package/types/throttle.d.ts +5 -5
  159. package/types/ui-canvas.d.ts +4 -4
  160. package/types/uni-canvas.d.ts +3 -3
  161. package/uni-app/drawImage.js +19 -19
  162. package/uni-app/ui-canvas.vue +284 -284
@@ -1,51 +1,51 @@
1
-
2
- // 点(x,y)围绕中心(cx,cy)旋转deg度
3
-
4
- const rotate = function (cx: number, cy: number, deg: number, x: number, y: number) {
5
- const cos = Math.cos(deg), sin = Math.sin(deg)
6
- return [
7
- +((x - cx) * cos - (y - cy) * sin + cx).toFixed(7),
8
- +((x - cx) * sin + (y - cy) * cos + cy).toFixed(7)
9
- ]
10
- }
11
-
12
- // r1和r2,内半径和外半径
13
- // beginA起点弧度,rotateA旋转弧度式
14
-
15
- export default function (beginA: number, rotateA: number, cx: number, cy: number, r1: number, r2: number, doback: Function) {
16
-
17
- // 保证逆时针也是可以的
18
- if (rotateA < 0) {
19
- beginA += rotateA
20
- rotateA *= -1
21
- }
22
-
23
- const temp: number[] = []
24
- let p: number[]
25
-
26
- // 内部
27
- p = rotate(0, 0, beginA, r1, 0)
28
- temp[0] = p[0]
29
- temp[1] = p[1]
30
- p = rotate(0, 0, rotateA, p[0], p[1])
31
- temp[2] = p[0]
32
- temp[3] = p[1]
33
-
34
- // 外部
35
- p = rotate(0, 0, beginA, r2, 0)
36
- temp[4] = p[0]
37
- temp[5] = p[1]
38
- p = rotate(0, 0, rotateA, p[0], p[1])
39
- temp[6] = p[0]
40
- temp[7] = p[1]
41
-
42
- doback(
43
- beginA, beginA + rotateA,
44
- temp[0] + cx, temp[1] + cy,
45
- temp[4] + cx, temp[5] + cy,
46
- temp[2] + cx, temp[3] + cy,
47
- temp[6] + cx, temp[7] + cy,
48
- (r2 - r1) * 0.5
49
- )
50
-
51
- }
1
+
2
+ // 点(x,y)围绕中心(cx,cy)旋转deg度
3
+
4
+ const rotate = function (cx: number, cy: number, deg: number, x: number, y: number) {
5
+ const cos = Math.cos(deg), sin = Math.sin(deg)
6
+ return [
7
+ +((x - cx) * cos - (y - cy) * sin + cx).toFixed(7),
8
+ +((x - cx) * sin + (y - cy) * cos + cy).toFixed(7)
9
+ ]
10
+ }
11
+
12
+ // r1和r2,内半径和外半径
13
+ // beginA起点弧度,rotateA旋转弧度式
14
+
15
+ export default function (beginA: number, rotateA: number, cx: number, cy: number, r1: number, r2: number, doback: Function) {
16
+
17
+ // 保证逆时针也是可以的
18
+ if (rotateA < 0) {
19
+ beginA += rotateA
20
+ rotateA *= -1
21
+ }
22
+
23
+ const temp: number[] = []
24
+ let p: number[]
25
+
26
+ // 内部
27
+ p = rotate(0, 0, beginA, r1, 0)
28
+ temp[0] = p[0]
29
+ temp[1] = p[1]
30
+ p = rotate(0, 0, rotateA, p[0], p[1])
31
+ temp[2] = p[0]
32
+ temp[3] = p[1]
33
+
34
+ // 外部
35
+ p = rotate(0, 0, beginA, r2, 0)
36
+ temp[4] = p[0]
37
+ temp[5] = p[1]
38
+ p = rotate(0, 0, rotateA, p[0], p[1])
39
+ temp[6] = p[0]
40
+ temp[7] = p[1]
41
+
42
+ doback(
43
+ beginA, beginA + rotateA,
44
+ temp[0] + cx, temp[1] + cy,
45
+ temp[4] + cx, temp[5] + cy,
46
+ temp[2] + cx, temp[3] + cy,
47
+ temp[6] + cx, temp[7] + cy,
48
+ (r2 - r1) * 0.5
49
+ )
50
+
51
+ }
@@ -1,158 +1,158 @@
1
- import type CanvasConfigType from "../../../types/CanvasConfig"
2
-
3
- import arc from "./arc"
4
-
5
- // 文字统一设置方法
6
- export const initText = function (
7
- painter: CanvasRenderingContext2D,
8
- config: CanvasConfigType,
9
- x: number,
10
- y: number,
11
- deg: number
12
- ) {
13
- painter.beginPath();
14
- painter.translate(x, y);
15
- painter.rotate(deg);
16
- painter.font =
17
- config.fontStyle +
18
- " " +
19
- config.fontWeight +
20
- " " +
21
- config.fontSize +
22
- "px " +
23
- config.fontFamily;
24
- return painter
25
- }
26
-
27
- // 画弧统一设置方法
28
- export const initArc = function (
29
- painter: CanvasRenderingContext2D,
30
- config: CanvasConfigType,
31
- cx: number,
32
- cy: number,
33
- r1: number,
34
- r2: number,
35
- beginDeg: number,
36
- deg: number
37
- ) {
38
- if (r1 > r2) {
39
- const temp = r1
40
- r1 = r2
41
- r2 = temp
42
- }
43
-
44
- beginDeg = beginDeg % (Math.PI * 2)
45
-
46
- // 当|deg|>=2π的时候都认为是一个圆环
47
- // 为什么不取2π比较,是怕部分浏览器浮点不精确
48
- if (deg >= Math.PI * 1.999999 || deg <= -Math.PI * 1.999999) {
49
- deg = Math.PI * 2
50
- } else {
51
- deg = deg % (Math.PI * 2)
52
- }
53
-
54
- arc(
55
- beginDeg,
56
- deg,
57
- cx,
58
- cy,
59
- r1,
60
- r2,
61
- function (
62
- beginA: number,
63
- endA: number,
64
- begInnerX: number,
65
- begInnerY: number,
66
- begOuterX: number,
67
- begOuterY: number,
68
- endInnerX: number,
69
- endInnerY: number,
70
- endOuterX: number,
71
- endOuterY: number,
72
- r: number
73
- ) {
74
- if (r < 0) r = -r
75
- painter.beginPath()
76
- painter.moveTo(begInnerX, begInnerY)
77
- painter.arc(
78
- // (圆心x,圆心y,半径,开始角度,结束角度,true逆时针/false顺时针)
79
- cx,
80
- cy,
81
- r1,
82
- beginA,
83
- endA,
84
- false
85
- )
86
- // 结尾
87
- if (config.arcEndCap == "round")
88
- painter.arc(
89
- (endInnerX + endOuterX) * 0.5,
90
- (endInnerY + endOuterY) * 0.5,
91
- r,
92
- endA - Math.PI,
93
- endA,
94
- true
95
- )
96
- else if (config.arcEndCap == "-round")
97
- painter.arc(
98
- (endInnerX + endOuterX) * 0.5,
99
- (endInnerY + endOuterY) * 0.5,
100
- r,
101
- endA - Math.PI,
102
- endA,
103
- false
104
- )
105
- else painter.lineTo(endOuterX, endOuterY)
106
-
107
- painter.arc(cx, cy, r2, endA, beginA, true)
108
- // 开头
109
- if (config.arcStartCap == "round")
110
- painter.arc(
111
- (begInnerX + begOuterX) * 0.5,
112
- (begInnerY + begOuterY) * 0.5,
113
- r,
114
- beginA,
115
- beginA - Math.PI,
116
- true
117
- )
118
- else if (config.arcStartCap == "-round")
119
- painter.arc(
120
- (begInnerX + begOuterX) * 0.5,
121
- (begInnerY + begOuterY) * 0.5,
122
- r,
123
- beginA,
124
- beginA - Math.PI,
125
- false
126
- )
127
- else painter.lineTo(begInnerX, begInnerY)
128
- }
129
- )
130
- if (config.arcStartCap == "butt") painter.closePath()
131
- return painter
132
- }
133
-
134
- // 画圆统一设置方法
135
- export const initCircle = function (
136
- painter: CanvasRenderingContext2D,
137
- cx: number,
138
- cy: number,
139
- r: number
140
- ) {
141
- painter.beginPath()
142
- painter.moveTo(cx + r, cy)
143
- painter.arc(cx, cy, r, 0, Math.PI * 2)
144
- return painter
145
- };
146
-
147
- // 画矩形统一设置方法
148
- export const initRect = function (
149
- painter: CanvasRenderingContext2D,
150
- x: number,
151
- y: number,
152
- width: number,
153
- height: number
154
- ) {
155
- painter.beginPath()
156
- painter.rect(x, y, width, height)
157
- return painter
158
- }
1
+ import type CanvasConfigType from "../../../types/CanvasConfig"
2
+
3
+ import arc from "./arc"
4
+
5
+ // 文字统一设置方法
6
+ export const initText = function (
7
+ painter: CanvasRenderingContext2D,
8
+ config: CanvasConfigType,
9
+ x: number,
10
+ y: number,
11
+ deg: number
12
+ ) {
13
+ painter.beginPath();
14
+ painter.translate(x, y);
15
+ painter.rotate(deg);
16
+ painter.font =
17
+ config.fontStyle +
18
+ " " +
19
+ config.fontWeight +
20
+ " " +
21
+ config.fontSize +
22
+ "px " +
23
+ config.fontFamily;
24
+ return painter
25
+ }
26
+
27
+ // 画弧统一设置方法
28
+ export const initArc = function (
29
+ painter: CanvasRenderingContext2D,
30
+ config: CanvasConfigType,
31
+ cx: number,
32
+ cy: number,
33
+ r1: number,
34
+ r2: number,
35
+ beginDeg: number,
36
+ deg: number
37
+ ) {
38
+ if (r1 > r2) {
39
+ const temp = r1
40
+ r1 = r2
41
+ r2 = temp
42
+ }
43
+
44
+ beginDeg = beginDeg % (Math.PI * 2)
45
+
46
+ // 当|deg|>=2π的时候都认为是一个圆环
47
+ // 为什么不取2π比较,是怕部分浏览器浮点不精确
48
+ if (deg >= Math.PI * 1.999999 || deg <= -Math.PI * 1.999999) {
49
+ deg = Math.PI * 2
50
+ } else {
51
+ deg = deg % (Math.PI * 2)
52
+ }
53
+
54
+ arc(
55
+ beginDeg,
56
+ deg,
57
+ cx,
58
+ cy,
59
+ r1,
60
+ r2,
61
+ function (
62
+ beginA: number,
63
+ endA: number,
64
+ begInnerX: number,
65
+ begInnerY: number,
66
+ begOuterX: number,
67
+ begOuterY: number,
68
+ endInnerX: number,
69
+ endInnerY: number,
70
+ endOuterX: number,
71
+ endOuterY: number,
72
+ r: number
73
+ ) {
74
+ if (r < 0) r = -r
75
+ painter.beginPath()
76
+ painter.moveTo(begInnerX, begInnerY)
77
+ painter.arc(
78
+ // (圆心x,圆心y,半径,开始角度,结束角度,true逆时针/false顺时针)
79
+ cx,
80
+ cy,
81
+ r1,
82
+ beginA,
83
+ endA,
84
+ false
85
+ )
86
+ // 结尾
87
+ if (config.arcEndCap == "round")
88
+ painter.arc(
89
+ (endInnerX + endOuterX) * 0.5,
90
+ (endInnerY + endOuterY) * 0.5,
91
+ r,
92
+ endA - Math.PI,
93
+ endA,
94
+ true
95
+ )
96
+ else if (config.arcEndCap == "-round")
97
+ painter.arc(
98
+ (endInnerX + endOuterX) * 0.5,
99
+ (endInnerY + endOuterY) * 0.5,
100
+ r,
101
+ endA - Math.PI,
102
+ endA,
103
+ false
104
+ )
105
+ else painter.lineTo(endOuterX, endOuterY)
106
+
107
+ painter.arc(cx, cy, r2, endA, beginA, true)
108
+ // 开头
109
+ if (config.arcStartCap == "round")
110
+ painter.arc(
111
+ (begInnerX + begOuterX) * 0.5,
112
+ (begInnerY + begOuterY) * 0.5,
113
+ r,
114
+ beginA,
115
+ beginA - Math.PI,
116
+ true
117
+ )
118
+ else if (config.arcStartCap == "-round")
119
+ painter.arc(
120
+ (begInnerX + begOuterX) * 0.5,
121
+ (begInnerY + begOuterY) * 0.5,
122
+ r,
123
+ beginA,
124
+ beginA - Math.PI,
125
+ false
126
+ )
127
+ else painter.lineTo(begInnerX, begInnerY)
128
+ }
129
+ )
130
+ if (config.arcStartCap == "butt") painter.closePath()
131
+ return painter
132
+ }
133
+
134
+ // 画圆统一设置方法
135
+ export const initCircle = function (
136
+ painter: CanvasRenderingContext2D,
137
+ cx: number,
138
+ cy: number,
139
+ r: number
140
+ ) {
141
+ painter.beginPath()
142
+ painter.moveTo(cx + r, cy)
143
+ painter.arc(cx, cy, r, 0, Math.PI * 2)
144
+ return painter
145
+ };
146
+
147
+ // 画矩形统一设置方法
148
+ export const initRect = function (
149
+ painter: CanvasRenderingContext2D,
150
+ x: number,
151
+ y: number,
152
+ width: number,
153
+ height: number
154
+ ) {
155
+ painter.beginPath()
156
+ painter.rect(x, y, width, height)
157
+ return painter
158
+ }
@@ -1,62 +1,62 @@
1
- import type { arcCapType } from '../../../types/painterConfig'
2
-
3
- export default function (type?: string) {
4
-
5
- let special = {
6
- // 文字大小
7
- "fontSize": 16,
8
-
9
- // 字体
10
- "fontFamily": "sans-serif",
11
-
12
- // 字重
13
- "fontWeight": 400,
14
-
15
- // 字类型
16
- "fontStyle": "normal",
17
-
18
- // 圆弧开始端闭合方式("butt"直线闭合、"round"圆帽闭合)
19
- "arcStartCap": <arcCapType>'butt',
20
-
21
- // 圆弧结束端闭合方式,和上一个类似
22
- "arcEndCap": <arcCapType>'butt'
23
- }
24
-
25
- let init = {
26
- // 填充色或图案
27
- "fillStyle": 'black',
28
-
29
- // 轮廓色或图案
30
- "strokeStyle": 'black',
31
-
32
- // 线条宽度(单位px,下同)
33
- "lineWidth": 1,
34
-
35
- // 线的端点类型,("butt"平直边缘、"round"半圆和"square"矩形)
36
- "lineCap": "butt",
37
-
38
- // 线的拐角连接方式,("miter"连接处边缘延长相接、"bevel"对角线斜角和"round"圆)
39
- "lineJoin": "miter",
40
-
41
- // 设置线条虚线,应该是一个数组[number,...]
42
- "lineDash": [],
43
-
44
- // 文字水平对齐方式("left"左对齐、"center"居中和"right"右对齐)
45
- "textAlign": 'left',
46
-
47
- // 文字垂直对齐方式("middle"垂直居中、"top"上对齐和"bottom"下对齐)
48
- "textBaseline": 'middle',
49
-
50
- // 阴影的模糊系数,默认0,也就是无阴影
51
- "shadowBlur": 0,
52
-
53
- // 阴影的颜色
54
- "shadowColor": "black"
55
- }
56
-
57
- if (type == 'special') return special
58
- else if (type == 'init') return init
59
- else return {
60
- ...special, ...init
61
- }
1
+ import type { arcCapType } from '../../../types/painterConfig'
2
+
3
+ export default function (type?: string) {
4
+
5
+ let special = {
6
+ // 文字大小
7
+ "fontSize": 16,
8
+
9
+ // 字体
10
+ "fontFamily": "sans-serif",
11
+
12
+ // 字重
13
+ "fontWeight": 400,
14
+
15
+ // 字类型
16
+ "fontStyle": "normal",
17
+
18
+ // 圆弧开始端闭合方式("butt"直线闭合、"round"圆帽闭合)
19
+ "arcStartCap": <arcCapType>'butt',
20
+
21
+ // 圆弧结束端闭合方式,和上一个类似
22
+ "arcEndCap": <arcCapType>'butt'
23
+ }
24
+
25
+ let init = {
26
+ // 填充色或图案
27
+ "fillStyle": 'black',
28
+
29
+ // 轮廓色或图案
30
+ "strokeStyle": 'black',
31
+
32
+ // 线条宽度(单位px,下同)
33
+ "lineWidth": 1,
34
+
35
+ // 线的端点类型,("butt"平直边缘、"round"半圆和"square"矩形)
36
+ "lineCap": "butt",
37
+
38
+ // 线的拐角连接方式,("miter"连接处边缘延长相接、"bevel"对角线斜角和"round"圆)
39
+ "lineJoin": "miter",
40
+
41
+ // 设置线条虚线,应该是一个数组[number,...]
42
+ "lineDash": [],
43
+
44
+ // 文字水平对齐方式("left"左对齐、"center"居中和"right"右对齐)
45
+ "textAlign": 'left',
46
+
47
+ // 文字垂直对齐方式("middle"垂直居中、"top"上对齐和"bottom"下对齐)
48
+ "textBaseline": 'middle',
49
+
50
+ // 阴影的模糊系数,默认0,也就是无阴影
51
+ "shadowBlur": 0,
52
+
53
+ // 阴影的颜色
54
+ "shadowColor": "black"
55
+ }
56
+
57
+ if (type == 'special') return special
58
+ else if (type == 'init') return init
59
+ else return {
60
+ ...special, ...init
61
+ }
62
62
  }
@@ -1,32 +1,32 @@
1
- let enhanceGradient = function (gradient: CanvasGradient, calcStop?: Function) {
2
- const enhanceGradient = {
3
- "value": function () {
4
- return gradient
5
- },
6
- "setColor": function (stop: number, color: string) {
7
- gradient.addColorStop(calcStop ? calcStop(stop) : stop, color)
8
- return enhanceGradient
9
- }
10
- };
11
- return enhanceGradient
12
- }
13
-
14
- // 线性渐变
15
- export const linearGradient = function (painter: CanvasRenderingContext2D, x0: number, y0: number, x1: number, y1: number) {
16
- const gradient = painter.createLinearGradient(x0, y0, x1, y1)
17
- return enhanceGradient(gradient)
18
- }
19
-
20
- // 环形渐变
21
- export const radialGradient = function (painter: CanvasRenderingContext2D, cx: number, cy: number, r: number) {
22
- const gradient = painter.createRadialGradient(cx, cy, 0, cx, cy, r)
23
- return enhanceGradient(gradient)
24
- }
25
-
26
- // 角度渐变
27
- export const conicGradient = function (painter: CanvasRenderingContext2D, cx: number, cy: number, startDeg: number, deg?: number) {
28
- const gradient = painter.createConicGradient(startDeg, cx, cy)
29
- return enhanceGradient(gradient, deg ? (stop: number) => {
30
- return deg / (Math.PI * 2) * stop
31
- } : undefined)
1
+ let enhanceGradient = function (gradient: CanvasGradient, calcStop?: Function) {
2
+ const enhanceGradient = {
3
+ "value": function () {
4
+ return gradient
5
+ },
6
+ "setColor": function (stop: number, color: string) {
7
+ gradient.addColorStop(calcStop ? calcStop(stop) : stop, color)
8
+ return enhanceGradient
9
+ }
10
+ };
11
+ return enhanceGradient
12
+ }
13
+
14
+ // 线性渐变
15
+ export const linearGradient = function (painter: CanvasRenderingContext2D, x0: number, y0: number, x1: number, y1: number) {
16
+ const gradient = painter.createLinearGradient(x0, y0, x1, y1)
17
+ return enhanceGradient(gradient)
18
+ }
19
+
20
+ // 环形渐变
21
+ export const radialGradient = function (painter: CanvasRenderingContext2D, cx: number, cy: number, r: number) {
22
+ const gradient = painter.createRadialGradient(cx, cy, 0, cx, cy, r)
23
+ return enhanceGradient(gradient)
24
+ }
25
+
26
+ // 角度渐变
27
+ export const conicGradient = function (painter: CanvasRenderingContext2D, cx: number, cy: number, startDeg: number, deg?: number) {
28
+ const gradient = painter.createConicGradient(startDeg, cx, cy)
29
+ return enhanceGradient(gradient, deg ? (stop: number) => {
30
+ return deg / (Math.PI * 2) * stop
31
+ } : undefined)
32
32
  }