vislite 0.3.0-alpha.1 → 0.3.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 (129) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +13 -2
  3. package/LICENSE +20 -20
  4. package/README.md +53 -53
  5. package/lib/Buffer/index.umd.js +55 -0
  6. package/lib/Buffer/index.umd.min.js +11 -0
  7. package/lib/Canvas/index.umd.js +11 -6
  8. package/lib/Canvas/index.umd.min.js +3 -3
  9. package/lib/Cardinal/index.umd.js +2 -2
  10. package/lib/Cardinal/index.umd.min.js +2 -2
  11. package/lib/Eoap/index.umd.js +2 -2
  12. package/lib/Eoap/index.umd.min.js +2 -2
  13. package/lib/Hermite/index.umd.js +2 -2
  14. package/lib/Hermite/index.umd.min.js +2 -2
  15. package/lib/Matrix4/index.umd.js +2 -2
  16. package/lib/Matrix4/index.umd.min.js +2 -2
  17. package/lib/Mercator/index.umd.js +2 -2
  18. package/lib/Mercator/index.umd.min.js +2 -2
  19. package/lib/OralCanvas/index.es.js +11 -6
  20. package/lib/OralCanvas/index.es.min.js +3 -3
  21. package/lib/OralWebGL/index.es.js +11 -6
  22. package/lib/OralWebGL/index.es.min.js +3 -3
  23. package/lib/SVG/index.umd.js +9 -4
  24. package/lib/SVG/index.umd.min.js +3 -3
  25. package/lib/Shader/index.umd.js +55 -0
  26. package/lib/Shader/index.umd.min.js +11 -0
  27. package/lib/Texture/index.umd.js +74 -0
  28. package/lib/Texture/index.umd.min.js +11 -0
  29. package/lib/WebGL/index.umd.js +11 -6
  30. package/lib/WebGL/index.umd.min.js +3 -3
  31. package/lib/animation/index.umd.js +2 -2
  32. package/lib/animation/index.umd.min.js +2 -2
  33. package/lib/getLoopColors/index.umd.js +2 -2
  34. package/lib/getLoopColors/index.umd.min.js +2 -2
  35. package/lib/getWebGLContext/index.umd.js +65 -0
  36. package/lib/getWebGLContext/index.umd.min.js +11 -0
  37. package/lib/index.umd.js +43 -10
  38. package/lib/index.umd.min.js +3 -3
  39. package/lib/rotate/index.umd.js +2 -2
  40. package/lib/rotate/index.umd.min.js +2 -2
  41. package/lib/ruler/index.umd.js +2 -2
  42. package/lib/ruler/index.umd.min.js +2 -2
  43. package/lib/viewHandler/index.umd.js +2 -2
  44. package/lib/viewHandler/index.umd.min.js +2 -2
  45. package/miniprogram/ui-canvas/index.js +99 -99
  46. package/miniprogram/ui-canvas/index.json +4 -4
  47. package/miniprogram/ui-canvas/index.wxml +4 -4
  48. package/miniprogram/ui-canvas/index.wxss +5 -5
  49. package/package/Buffer/index.ts +2 -0
  50. package/package/Canvas/index.ts +1 -1
  51. package/package/Cardinal/index.ts +2 -2
  52. package/package/Eoap/index.ts +2 -2
  53. package/package/Hermite/index.ts +2 -2
  54. package/package/Matrix4/index.ts +2 -2
  55. package/package/Mercator/index.ts +2 -2
  56. package/package/OralCanvas/index.ts +1 -1
  57. package/package/OralWebGL/index.ts +1 -1
  58. package/package/SVG/index.ts +2 -2
  59. package/package/Shader/index.ts +2 -0
  60. package/package/Texture/index.ts +2 -0
  61. package/package/WebGL/index.ts +1 -1
  62. package/package/animation/index.ts +2 -2
  63. package/package/getLoopColors/index.ts +2 -2
  64. package/package/getWebGLContext/index.ts +40 -0
  65. package/package/index.ts +56 -45
  66. package/package/rotate/index.ts +2 -2
  67. package/package/ruler/index.ts +2 -2
  68. package/package/viewHandler/index.ts +2 -2
  69. package/package.json +2 -2
  70. package/src/Canvas.ts +56 -56
  71. package/src/Eoap.ts +66 -66
  72. package/src/Matrix4/index.ts +76 -76
  73. package/src/Matrix4/move.ts +12 -12
  74. package/src/Matrix4/rotate.ts +15 -15
  75. package/src/Matrix4/scale.ts +11 -11
  76. package/src/Matrix4/transform.ts +64 -64
  77. package/src/Mercator.ts +26 -26
  78. package/src/SVG.ts +23 -23
  79. package/src/WebGL.ts +52 -52
  80. package/src/animation.ts +99 -99
  81. package/src/common/assemble.ts +1 -1
  82. package/src/common/canvas/arc.ts +50 -50
  83. package/src/common/canvas/config.ts +157 -157
  84. package/src/common/canvas/gradient.ts +29 -29
  85. package/src/common/canvas/index.ts +10 -7
  86. package/src/common/canvas/painter.ts +355 -355
  87. package/src/common/canvas/texts.ts +18 -18
  88. package/src/common/setStyle.ts +5 -5
  89. package/src/common/svg/config.ts +173 -173
  90. package/src/common/svg/index.ts +334 -334
  91. package/src/common/svg/tool.ts +43 -43
  92. package/src/common/webgl/buffer.ts +79 -79
  93. package/src/common/webgl/doDraw.ts +106 -106
  94. package/src/common/webgl/getColorFactory.ts +26 -26
  95. package/src/common/webgl/getShader.ts +75 -75
  96. package/src/common/webgl/getTexture.ts +11 -11
  97. package/src/common/webgl/getWebGLContext.ts +27 -27
  98. package/src/common/webgl/index.ts +216 -216
  99. package/src/common/webgl/shader.ts +75 -75
  100. package/src/common/webgl/texture.ts +99 -99
  101. package/src/getLoopColors.ts +42 -42
  102. package/src/interpolation/Cardinal.ts +109 -109
  103. package/src/interpolation/Hermite.ts +65 -65
  104. package/src/rotate.ts +7 -7
  105. package/src/ruler.ts +99 -99
  106. package/src/viewHandler.ts +139 -139
  107. package/types/Buffer.d.ts +24 -0
  108. package/types/Canvas.d.ts +282 -282
  109. package/types/CanvasConfig.d.ts +80 -80
  110. package/types/Cardinal.d.ts +13 -13
  111. package/types/Gradient.d.ts +14 -14
  112. package/types/Hermite.d.ts +18 -18
  113. package/types/Map.d.ts +9 -9
  114. package/types/Matrix4.d.ts +42 -42
  115. package/types/Object3D.d.ts +113 -113
  116. package/types/SVG.d.ts +210 -210
  117. package/types/SVGConfig.d.ts +58 -58
  118. package/types/Scene3D.d.ts +6 -6
  119. package/types/Shader.d.ts +16 -0
  120. package/types/Texture.d.ts +17 -0
  121. package/types/WebGL.d.ts +38 -38
  122. package/types/animation.d.ts +6 -6
  123. package/types/getLoopColors.d.ts +2 -2
  124. package/types/getWebGLContext.d.ts +3 -0
  125. package/types/index.d.ts +129 -101
  126. package/types/rotate.d.ts +2 -2
  127. package/types/ruler.d.ts +2 -2
  128. package/types/viewHandler.d.ts +12 -12
  129. 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
+ }
@@ -17,7 +17,10 @@ class Canvas extends PainterRender {
17
17
  readonly name: string = "Canvas"
18
18
 
19
19
  private __regionList = {} //区域映射表
20
- private __regionAssemble = assemble(0, 255, 1, 3)
20
+
21
+ // 步长由1改为10是为了优化区域计算有时候出错问题
22
+ // 2023年7月6日 于南京
23
+ private __regionAssemble = assemble(0, 255, 10, 3)
21
24
 
22
25
  constructor(ViewCanvas: HTMLCanvasElement, RegionCanvas: HTMLCanvasElement) {
23
26
  super(
@@ -71,12 +74,12 @@ class Canvas extends PainterRender {
71
74
  for (let key in this.__regionList) {
72
75
  if (
73
76
  "rgb(" +
74
- currentRGBA[0] +
75
- "," +
76
- currentRGBA[1] +
77
- "," +
78
- currentRGBA[2] +
79
- ")" ==
77
+ currentRGBA[0] +
78
+ "," +
79
+ currentRGBA[1] +
80
+ "," +
81
+ currentRGBA[2] +
82
+ ")" ==
80
83
  this.__regionList[key]
81
84
  ) {
82
85
  resolve(key)