jmgraph 3.2.16 → 3.2.18

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 (77) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +251 -428
  3. package/build/gulpfile.js +142 -142
  4. package/build/package-lock.json +10666 -0
  5. package/build/package.json +71 -71
  6. package/dev.js +9 -9
  7. package/dist/jmgraph.core.min.js +1 -1
  8. package/dist/jmgraph.core.min.js.map +1 -1
  9. package/dist/jmgraph.js +3500 -2668
  10. package/dist/jmgraph.min.js +1 -1
  11. package/example/ball.html +216 -216
  12. package/example/base.html +111 -111
  13. package/example/canvas.html +53 -53
  14. package/example/cell.html +283 -283
  15. package/example/controls/arc.html +128 -128
  16. package/example/controls/arrowline.html +77 -77
  17. package/example/controls/bezier.html +298 -298
  18. package/example/controls/img.html +96 -96
  19. package/example/controls/label.html +86 -86
  20. package/example/controls/line.html +172 -172
  21. package/example/controls/prismatic.html +62 -62
  22. package/example/controls/rect.html +63 -63
  23. package/example/controls/resize.html +111 -111
  24. package/example/controls/test.html +359 -359
  25. package/example/es.html +69 -69
  26. package/example/es5module.html +62 -63
  27. package/example/heartarc.html +115 -115
  28. package/example/index.html +46 -46
  29. package/example/js/require.js +4 -4
  30. package/example/love/img/bling/bling.tps +265 -265
  31. package/example/love/img/bling.json +87 -87
  32. package/example/love/img/bling.tps +295 -295
  33. package/example/love/img/love.json +95 -95
  34. package/example/love/img/love.tps +315 -315
  35. package/example/love/img/qq/qq.tps +399 -399
  36. package/example/love/img/qq.json +242 -242
  37. package/example/love/index.html +40 -40
  38. package/example/love/js/game.js +558 -558
  39. package/example/music.html +210 -210
  40. package/example/node/test.js +137 -137
  41. package/example/pdf.html +186 -186
  42. package/example/progress.html +172 -172
  43. package/example/pso.html +147 -147
  44. package/example/sort.html +804 -815
  45. package/example/tweenjs.html +83 -83
  46. package/example/webgl.html +278 -278
  47. package/example/xfj/index.html +331 -331
  48. package/example/xfj/shake.js +48 -48
  49. package/example/xfj/testori.html +75 -75
  50. package/index.js +99 -99
  51. package/package.json +58 -56
  52. package/src/core/jmControl.js +1376 -1531
  53. package/src/core/jmEvents.js +240 -281
  54. package/src/core/jmGradient.js +231 -231
  55. package/src/core/jmGraph.js +569 -569
  56. package/src/core/jmList.js +92 -157
  57. package/src/core/jmObject.js +83 -103
  58. package/src/core/jmPath.js +35 -35
  59. package/src/core/jmProperty.js +71 -110
  60. package/src/core/jmShadow.js +65 -65
  61. package/src/core/jmUtils.js +906 -919
  62. package/src/lib/earcut.js +680 -680
  63. package/src/lib/earcut.md +73 -73
  64. package/src/lib/webgl/base.js +522 -452
  65. package/src/lib/webgl/core/buffer.js +48 -48
  66. package/src/lib/webgl/core/mapSize.js +40 -40
  67. package/src/lib/webgl/core/mapType.js +43 -43
  68. package/src/lib/webgl/core/program.js +138 -138
  69. package/src/lib/webgl/core/shader.js +13 -13
  70. package/src/lib/webgl/core/texture.js +60 -60
  71. package/src/lib/webgl/gradient.js +168 -168
  72. package/src/lib/webgl/index.js +137 -11
  73. package/src/lib/webgl/path.js +568 -561
  74. package/src/shapes/jmArrowLine.js +36 -36
  75. package/src/shapes/jmImage.js +244 -244
  76. package/src/shapes/jmLabel.js +271 -271
  77. package/src/shapes/jmResize.js +332 -330
package/src/lib/earcut.md CHANGED
@@ -1,73 +1,73 @@
1
- 在前端开发中,很多时候需要对复杂的多边形进行分割,以便更好地进行渲染和处理。这时候,我们可以使用一些工具来进行分割操作。其中,一个非常实用的工具就是 npm 包 earcut。
2
-
3
- 本文将详细介绍 npm 包 earcut 的使用方法,包括安装、基本用法和示例代码等方面。
4
-
5
- 安装
6
- 要使用 npm 包 earcut,我们首先需要进行安装。在命令行中执行以下命令即可完成安装:
7
-
8
- `npm install earcut`
9
-
10
- 基本用法
11
- 安装完成后,我们就可以在项目代码中使用 earcut 了。下面是一个基本示例:
12
-
13
- ```js
14
- const earcut = require('earcut');
15
-
16
- // 定义多边形坐标点数组
17
- const coords = [
18
- 100, 100,
19
- 200, 150,
20
- 150, 200,
21
- 50, 150
22
- ];
23
-
24
- // 进行多边形分割
25
- const triangles = earcut(coords);
26
-
27
- console.log(triangles); // [1, 0, 3, 3, 2, 1]
28
-
29
- ```
30
-
31
- 在这个示例中,我们使用 earcut 对一个四边形多边形进行了分割,并将分割结果输出到控制台。
32
-
33
- earcut 在进行分割时,需要我们将多边形的坐标点以一定的格式传入。具体格式如下:
34
-
35
- 坐标点数组中,每两项表示一个坐标点的 x、y 值。
36
- 坐标点数组中的所有坐标点按顺序构成了一个多边形。
37
- 如果多边形包含内部空洞,需要将空洞内部的坐标按顺序插入到坐标点数组中。
38
- 使用 earcut 进行多边形分割后,分割结果将会是一个数字数组。其中,每三个数字表示一个三角形的三个顶点在坐标点数组中的索引。
39
-
40
- 示例代码
41
- 下面是一个更为复杂的示例,展示了如何使用 earcut 进行多个带空洞的多边形的分割:
42
- ```js
43
- const earcut = require('earcut');
44
-
45
- // 定义多边形坐标点数组(按照序号连接即组成完整图形,后两组为同一空洞)
46
- const coords = [
47
- 100, 0,
48
- 0, 100,
49
- 100, 200,
50
- 200, 100,
51
-
52
- 50, 50,
53
- 100, 100,
54
- 150, 50
55
- ];
56
-
57
- // 定义多边形顶点索引数组,每个多边形用三个数字表示
58
- const polygonIndices = [
59
- 0, 1, 2,
60
- 0, 2, 3,
61
-
62
- 4, 5, 6
63
- ];
64
-
65
- // 进行多边形分割
66
- const triangles = earcut(coords, polygonIndices);
67
-
68
- console.log(triangles); // [2, 0, 3, 6, 4, 5, 1, 0, 8, 7, 6, 5]
69
- ```
70
- 在这个示例中,我们定义了两个多边形。第一个多边形是一个正方形,带有一个内部的小正方形空洞。第二个多边形是一个三角形,没有空洞。通过传入多边形坐标点数组和多边形顶点索引数组到 earcut 函数,我们将多个多边形同时进行了分割。程序输出的结果则是所有分割后的三角形的顶点在坐标点数组中的索引。
71
-
72
- 结语
73
- 本文介绍了 npm 包 earcut 的基本使用方法和示例代码。通过本文的学习,相信读者已经了解了 earcut 的基本功能和用法,并可以在自己的项目中灵活运用它进行多边形分割操作。
1
+ 在前端开发中,很多时候需要对复杂的多边形进行分割,以便更好地进行渲染和处理。这时候,我们可以使用一些工具来进行分割操作。其中,一个非常实用的工具就是 npm 包 earcut。
2
+
3
+ 本文将详细介绍 npm 包 earcut 的使用方法,包括安装、基本用法和示例代码等方面。
4
+
5
+ 安装
6
+ 要使用 npm 包 earcut,我们首先需要进行安装。在命令行中执行以下命令即可完成安装:
7
+
8
+ `npm install earcut`
9
+
10
+ 基本用法
11
+ 安装完成后,我们就可以在项目代码中使用 earcut 了。下面是一个基本示例:
12
+
13
+ ```js
14
+ const earcut = require('earcut');
15
+
16
+ // 定义多边形坐标点数组
17
+ const coords = [
18
+ 100, 100,
19
+ 200, 150,
20
+ 150, 200,
21
+ 50, 150
22
+ ];
23
+
24
+ // 进行多边形分割
25
+ const triangles = earcut(coords);
26
+
27
+ console.log(triangles); // [1, 0, 3, 3, 2, 1]
28
+
29
+ ```
30
+
31
+ 在这个示例中,我们使用 earcut 对一个四边形多边形进行了分割,并将分割结果输出到控制台。
32
+
33
+ earcut 在进行分割时,需要我们将多边形的坐标点以一定的格式传入。具体格式如下:
34
+
35
+ 坐标点数组中,每两项表示一个坐标点的 x、y 值。
36
+ 坐标点数组中的所有坐标点按顺序构成了一个多边形。
37
+ 如果多边形包含内部空洞,需要将空洞内部的坐标按顺序插入到坐标点数组中。
38
+ 使用 earcut 进行多边形分割后,分割结果将会是一个数字数组。其中,每三个数字表示一个三角形的三个顶点在坐标点数组中的索引。
39
+
40
+ 示例代码
41
+ 下面是一个更为复杂的示例,展示了如何使用 earcut 进行多个带空洞的多边形的分割:
42
+ ```js
43
+ const earcut = require('earcut');
44
+
45
+ // 定义多边形坐标点数组(按照序号连接即组成完整图形,后两组为同一空洞)
46
+ const coords = [
47
+ 100, 0,
48
+ 0, 100,
49
+ 100, 200,
50
+ 200, 100,
51
+
52
+ 50, 50,
53
+ 100, 100,
54
+ 150, 50
55
+ ];
56
+
57
+ // 定义多边形顶点索引数组,每个多边形用三个数字表示
58
+ const polygonIndices = [
59
+ 0, 1, 2,
60
+ 0, 2, 3,
61
+
62
+ 4, 5, 6
63
+ ];
64
+
65
+ // 进行多边形分割
66
+ const triangles = earcut(coords, polygonIndices);
67
+
68
+ console.log(triangles); // [2, 0, 3, 6, 4, 5, 1, 0, 8, 7, 6, 5]
69
+ ```
70
+ 在这个示例中,我们定义了两个多边形。第一个多边形是一个正方形,带有一个内部的小正方形空洞。第二个多边形是一个三角形,没有空洞。通过传入多边形坐标点数组和多边形顶点索引数组到 earcut 函数,我们将多个多边形同时进行了分割。程序输出的结果则是所有分割后的三角形的顶点在坐标点数组中的索引。
71
+
72
+ 结语
73
+ 本文介绍了 npm 包 earcut 的基本使用方法和示例代码。通过本文的学习,相信读者已经了解了 earcut 的基本功能和用法,并可以在自己的项目中灵活运用它进行多边形分割操作。