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,19 +1,19 @@
1
- export default function (painter: CanvasRenderingContext2D, contents: string, width: number, height: number, doback: (content: string, top: number) => void) {
2
-
3
- let lineNumber = 0, content = ""
4
- for (let i = 0; i < contents.length; i++) {
5
- if (painter.measureText(content + contents[i]).width > width) {
6
- lineNumber += 1
7
- doback(content, (lineNumber - 0.5) * height)
8
-
9
- content = contents[i]
10
- } else if (i == contents.length - 1) {
11
- lineNumber += 1
12
- doback(content + contents[i], (lineNumber - 0.5) * height)
13
- } else {
14
- content += contents[i]
15
- }
16
- }
17
-
18
- return lineNumber * height
1
+ export default function (painter: CanvasRenderingContext2D, contents: string, width: number, height: number, doback: (content: string, top: number) => void) {
2
+
3
+ let lineNumber = 0, content = ""
4
+ for (let i = 0; i < contents.length; i++) {
5
+ if (painter.measureText(content + contents[i]).width > width) {
6
+ lineNumber += 1
7
+ doback(content, (lineNumber - 0.5) * height)
8
+
9
+ content = contents[i]
10
+ } else if (i == contents.length - 1) {
11
+ lineNumber += 1
12
+ doback(content + contents[i], (lineNumber - 0.5) * height)
13
+ } else {
14
+ content += contents[i]
15
+ }
16
+ }
17
+
18
+ return lineNumber * height
19
19
  }
@@ -1,6 +1,6 @@
1
- // 修改样式
2
- export default function (el: HTMLElement | SVGElement, styles: any) {
3
- for (let key in styles) {
4
- el.style[key] = styles[key]
5
- }
1
+ // 修改样式
2
+ export default function (el: HTMLElement | SVGElement, styles: any) {
3
+ for (let key in styles) {
4
+ el.style[key] = styles[key]
5
+ }
6
6
  }
@@ -1,173 +1,173 @@
1
- import { setAttribute } from "./tool"
2
- import setStyle from "../setStyle"
3
- import arc from "../canvas/arc"
4
- import SVGConfigType from "../../../types/SVGConfig"
5
-
6
- // 文字统一设置方法
7
- export let initText = (
8
- el: SVGElement,
9
- config: SVGConfigType,
10
- x: number,
11
- y: number,
12
- deg: number
13
- ) => {
14
- if (el.nodeName.toLowerCase() !== "text") throw new Error("Need a <text> !")
15
-
16
- // 垂直对齐采用dy实现
17
- setAttribute(
18
- el,
19
- "dy",
20
- {
21
- top: config["fontSize"] * 0.5,
22
- middle: 0,
23
- bottom: -config["fontSize"] * 0.5,
24
- }[config.textBaseline]
25
- )
26
-
27
- setStyle(el, {
28
- // 文字对齐方式
29
- "text-anchor": {
30
- left: "start",
31
- right: "end",
32
- center: "middle",
33
- }[config.textAlign],
34
- "dominant-baseline": "central",
35
-
36
- // 文字大小和字体设置
37
- "font-size": config["fontSize"] + "px",
38
- "font-family": config["fontFamily"],
39
- })
40
-
41
- // 位置
42
- setAttribute(el, "x", x)
43
- setAttribute(el, "y", y)
44
-
45
- // 旋转
46
- if (typeof deg == "number") {
47
- deg = deg % 360
48
- setAttribute(el, "transform", "rotate(" + deg + "," + x + "," + y + ")")
49
- }
50
- }
51
-
52
- // 画圆统一设置方法
53
- export let initCircle = (el: SVGElement, cx: number, cy: number, r: number) => {
54
- if (el.nodeName.toLowerCase() !== "circle")
55
- throw new Error("Need a <circle> !")
56
- setAttribute(el, "cx", cx)
57
- setAttribute(el, "cy", cy)
58
- setAttribute(el, "r", r)
59
- }
60
-
61
- // 路径统一设置方法
62
- export let initPath = (el: SVGElement, path: string) => {
63
- if (el.nodeName.toLowerCase() !== "path") throw new Error("Need a <path> !")
64
- setAttribute(el, "d", path)
65
- }
66
-
67
- // 画矩形统一设置方法
68
- export let initRect = (
69
- el: SVGElement,
70
- x: number,
71
- y: number,
72
- width: number,
73
- height: number
74
- ) => {
75
- if (el.nodeName.toLowerCase() !== "rect") throw new Error("Need a <rect> !")
76
-
77
- // 由于高和宽不可以是负数,校对一下
78
- if (height < 0) {
79
- height *= -1
80
- y -= height
81
- }
82
- if (width < 0) {
83
- width *= -1
84
- x -= width
85
- }
86
-
87
- setAttribute(el, "x", x)
88
- setAttribute(el, "y", y)
89
- setAttribute(el, "width", width)
90
- setAttribute(el, "height", height)
91
- }
92
-
93
- // 画弧统一设置方法
94
- export let initArc = (
95
- el: SVGElement,
96
- config: SVGConfigType,
97
- cx: number,
98
- cy: number,
99
- r1: number,
100
- r2: number,
101
- beginDeg: number,
102
- deg: number
103
- ) => {
104
- if (el.nodeName.toLowerCase() !== "path") throw new Error("Need a <path> !")
105
-
106
- beginDeg = (beginDeg / 180) * Math.PI
107
- deg = (deg / 180) * Math.PI
108
-
109
- beginDeg = beginDeg % (Math.PI * 2)
110
-
111
- if (r1 > r2) {
112
- let temp = r1
113
- r1 = r2
114
- r2 = temp
115
- }
116
-
117
- // 当|deg|>=2π的时候都认为是一个圆环
118
- if (deg >= Math.PI * 1.999999 || deg <= -Math.PI * 1.999999) {
119
- deg = Math.PI * 1.999999
120
- } else {
121
- deg = deg % (Math.PI * 2)
122
- }
123
-
124
- arc(
125
- beginDeg,
126
- deg,
127
- cx,
128
- cy,
129
- r1,
130
- r2,
131
- function (
132
- beginA: number,
133
- endA: number,
134
- begInnerX: number,
135
- begInnerY: number,
136
- begOuterX: number,
137
- begOuterY: number,
138
- endInnerX: number,
139
- endInnerY: number,
140
- endOuterX: number,
141
- endOuterY: number,
142
- r: number
143
- ) {
144
- let f = endA - beginA > Math.PI ? 1 : 0,
145
- d = "M" + begInnerX + " " + begInnerY
146
- if (r < 0) r = -r
147
-
148
- d +=
149
- // 横半径 竖半径 x轴偏移角度 0小弧/1大弧 0逆时针/1顺时针 终点x 终点y
150
- "A" + r1 + " " + r1 + " 0 " + f + " 1 " + endInnerX + " " + endInnerY
151
-
152
- // 结尾
153
- if (config.arcEndCap == "round")
154
- d += "A" + r + " " + r + " " + " 0 1 0 " + endOuterX + " " + endOuterY
155
- else if (config.arcEndCap == "-round")
156
- d += "A" + r + " " + r + " " + " 0 1 1 " + endOuterX + " " + endOuterY
157
- else d += "L" + endOuterX + " " + endOuterY
158
- d +=
159
- "A" + r2 + " " + r2 + " 0 " + f + " 0 " + begOuterX + " " + begOuterY
160
-
161
- // 开头
162
- if (config.arcStartCap == "round")
163
- d += "A" + r + " " + r + " " + " 0 1 0 " + begInnerX + " " + begInnerY
164
- else if (config.arcStartCap == "-round")
165
- d += "A" + r + " " + r + " " + " 0 1 1 " + begInnerX + " " + begInnerY
166
- else d += "L" + begInnerX + " " + begInnerY
167
-
168
- if (config.arcStartCap == "butt") d += "Z"
169
-
170
- setAttribute(el, "d", d)
171
- }
172
- )
173
- }
1
+ import { setAttribute } from "./tool"
2
+ import setStyle from "../setStyle"
3
+ import arc from "../canvas/arc"
4
+ import SVGConfigType from "../../../types/SVGConfig"
5
+
6
+ // 文字统一设置方法
7
+ export let initText = (
8
+ el: SVGElement,
9
+ config: SVGConfigType,
10
+ x: number,
11
+ y: number,
12
+ deg: number
13
+ ) => {
14
+ if (el.nodeName.toLowerCase() !== "text") throw new Error("Need a <text> !")
15
+
16
+ // 垂直对齐采用dy实现
17
+ setAttribute(
18
+ el,
19
+ "dy",
20
+ {
21
+ top: config["fontSize"] * 0.5,
22
+ middle: 0,
23
+ bottom: -config["fontSize"] * 0.5,
24
+ }[config.textBaseline]
25
+ )
26
+
27
+ setStyle(el, {
28
+ // 文字对齐方式
29
+ "text-anchor": {
30
+ left: "start",
31
+ right: "end",
32
+ center: "middle",
33
+ }[config.textAlign],
34
+ "dominant-baseline": "central",
35
+
36
+ // 文字大小和字体设置
37
+ "font-size": config["fontSize"] + "px",
38
+ "font-family": config["fontFamily"],
39
+ })
40
+
41
+ // 位置
42
+ setAttribute(el, "x", x)
43
+ setAttribute(el, "y", y)
44
+
45
+ // 旋转
46
+ if (typeof deg == "number") {
47
+ deg = deg % 360
48
+ setAttribute(el, "transform", "rotate(" + deg + "," + x + "," + y + ")")
49
+ }
50
+ }
51
+
52
+ // 画圆统一设置方法
53
+ export let initCircle = (el: SVGElement, cx: number, cy: number, r: number) => {
54
+ if (el.nodeName.toLowerCase() !== "circle")
55
+ throw new Error("Need a <circle> !")
56
+ setAttribute(el, "cx", cx)
57
+ setAttribute(el, "cy", cy)
58
+ setAttribute(el, "r", r)
59
+ }
60
+
61
+ // 路径统一设置方法
62
+ export let initPath = (el: SVGElement, path: string) => {
63
+ if (el.nodeName.toLowerCase() !== "path") throw new Error("Need a <path> !")
64
+ setAttribute(el, "d", path)
65
+ }
66
+
67
+ // 画矩形统一设置方法
68
+ export let initRect = (
69
+ el: SVGElement,
70
+ x: number,
71
+ y: number,
72
+ width: number,
73
+ height: number
74
+ ) => {
75
+ if (el.nodeName.toLowerCase() !== "rect") throw new Error("Need a <rect> !")
76
+
77
+ // 由于高和宽不可以是负数,校对一下
78
+ if (height < 0) {
79
+ height *= -1
80
+ y -= height
81
+ }
82
+ if (width < 0) {
83
+ width *= -1
84
+ x -= width
85
+ }
86
+
87
+ setAttribute(el, "x", x)
88
+ setAttribute(el, "y", y)
89
+ setAttribute(el, "width", width)
90
+ setAttribute(el, "height", height)
91
+ }
92
+
93
+ // 画弧统一设置方法
94
+ export let initArc = (
95
+ el: SVGElement,
96
+ config: SVGConfigType,
97
+ cx: number,
98
+ cy: number,
99
+ r1: number,
100
+ r2: number,
101
+ beginDeg: number,
102
+ deg: number
103
+ ) => {
104
+ if (el.nodeName.toLowerCase() !== "path") throw new Error("Need a <path> !")
105
+
106
+ beginDeg = (beginDeg / 180) * Math.PI
107
+ deg = (deg / 180) * Math.PI
108
+
109
+ beginDeg = beginDeg % (Math.PI * 2)
110
+
111
+ if (r1 > r2) {
112
+ let temp = r1
113
+ r1 = r2
114
+ r2 = temp
115
+ }
116
+
117
+ // 当|deg|>=2π的时候都认为是一个圆环
118
+ if (deg >= Math.PI * 1.999999 || deg <= -Math.PI * 1.999999) {
119
+ deg = Math.PI * 1.999999
120
+ } else {
121
+ deg = deg % (Math.PI * 2)
122
+ }
123
+
124
+ arc(
125
+ beginDeg,
126
+ deg,
127
+ cx,
128
+ cy,
129
+ r1,
130
+ r2,
131
+ function (
132
+ beginA: number,
133
+ endA: number,
134
+ begInnerX: number,
135
+ begInnerY: number,
136
+ begOuterX: number,
137
+ begOuterY: number,
138
+ endInnerX: number,
139
+ endInnerY: number,
140
+ endOuterX: number,
141
+ endOuterY: number,
142
+ r: number
143
+ ) {
144
+ let f = endA - beginA > Math.PI ? 1 : 0,
145
+ d = "M" + begInnerX + " " + begInnerY
146
+ if (r < 0) r = -r
147
+
148
+ d +=
149
+ // 横半径 竖半径 x轴偏移角度 0小弧/1大弧 0逆时针/1顺时针 终点x 终点y
150
+ "A" + r1 + " " + r1 + " 0 " + f + " 1 " + endInnerX + " " + endInnerY
151
+
152
+ // 结尾
153
+ if (config.arcEndCap == "round")
154
+ d += "A" + r + " " + r + " " + " 0 1 0 " + endOuterX + " " + endOuterY
155
+ else if (config.arcEndCap == "-round")
156
+ d += "A" + r + " " + r + " " + " 0 1 1 " + endOuterX + " " + endOuterY
157
+ else d += "L" + endOuterX + " " + endOuterY
158
+ d +=
159
+ "A" + r2 + " " + r2 + " 0 " + f + " 0 " + begOuterX + " " + begOuterY
160
+
161
+ // 开头
162
+ if (config.arcStartCap == "round")
163
+ d += "A" + r + " " + r + " " + " 0 1 0 " + begInnerX + " " + begInnerY
164
+ else if (config.arcStartCap == "-round")
165
+ d += "A" + r + " " + r + " " + " 0 1 1 " + begInnerX + " " + begInnerY
166
+ else d += "L" + begInnerX + " " + begInnerY
167
+
168
+ if (config.arcStartCap == "butt") d += "Z"
169
+
170
+ setAttribute(el, "d", d)
171
+ }
172
+ )
173
+ }