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.
- package/LICENSE +21 -21
- package/README.md +251 -428
- package/build/gulpfile.js +142 -142
- package/build/package-lock.json +10666 -0
- package/build/package.json +71 -71
- package/dev.js +9 -9
- package/dist/jmgraph.core.min.js +1 -1
- package/dist/jmgraph.core.min.js.map +1 -1
- package/dist/jmgraph.js +3500 -2668
- package/dist/jmgraph.min.js +1 -1
- package/example/ball.html +216 -216
- package/example/base.html +111 -111
- package/example/canvas.html +53 -53
- package/example/cell.html +283 -283
- package/example/controls/arc.html +128 -128
- package/example/controls/arrowline.html +77 -77
- package/example/controls/bezier.html +298 -298
- package/example/controls/img.html +96 -96
- package/example/controls/label.html +86 -86
- package/example/controls/line.html +172 -172
- package/example/controls/prismatic.html +62 -62
- package/example/controls/rect.html +63 -63
- package/example/controls/resize.html +111 -111
- package/example/controls/test.html +359 -359
- package/example/es.html +69 -69
- package/example/es5module.html +62 -63
- package/example/heartarc.html +115 -115
- package/example/index.html +46 -46
- package/example/js/require.js +4 -4
- package/example/love/img/bling/bling.tps +265 -265
- package/example/love/img/bling.json +87 -87
- package/example/love/img/bling.tps +295 -295
- package/example/love/img/love.json +95 -95
- package/example/love/img/love.tps +315 -315
- package/example/love/img/qq/qq.tps +399 -399
- package/example/love/img/qq.json +242 -242
- package/example/love/index.html +40 -40
- package/example/love/js/game.js +558 -558
- package/example/music.html +210 -210
- package/example/node/test.js +137 -137
- package/example/pdf.html +186 -186
- package/example/progress.html +172 -172
- package/example/pso.html +147 -147
- package/example/sort.html +804 -815
- package/example/tweenjs.html +83 -83
- package/example/webgl.html +278 -278
- package/example/xfj/index.html +331 -331
- package/example/xfj/shake.js +48 -48
- package/example/xfj/testori.html +75 -75
- package/index.js +99 -99
- package/package.json +58 -56
- package/src/core/jmControl.js +1376 -1531
- package/src/core/jmEvents.js +240 -281
- package/src/core/jmGradient.js +231 -231
- package/src/core/jmGraph.js +569 -569
- package/src/core/jmList.js +92 -157
- package/src/core/jmObject.js +83 -103
- package/src/core/jmPath.js +35 -35
- package/src/core/jmProperty.js +71 -110
- package/src/core/jmShadow.js +65 -65
- package/src/core/jmUtils.js +906 -919
- package/src/lib/earcut.js +680 -680
- package/src/lib/earcut.md +73 -73
- package/src/lib/webgl/base.js +522 -452
- package/src/lib/webgl/core/buffer.js +48 -48
- package/src/lib/webgl/core/mapSize.js +40 -40
- package/src/lib/webgl/core/mapType.js +43 -43
- package/src/lib/webgl/core/program.js +138 -138
- package/src/lib/webgl/core/shader.js +13 -13
- package/src/lib/webgl/core/texture.js +60 -60
- package/src/lib/webgl/gradient.js +168 -168
- package/src/lib/webgl/index.js +137 -11
- package/src/lib/webgl/path.js +568 -561
- package/src/shapes/jmArrowLine.js +36 -36
- package/src/shapes/jmImage.js +244 -244
- package/src/shapes/jmLabel.js +271 -271
- 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 的基本功能和用法,并可以在自己的项目中灵活运用它进行多边形分割操作。
|