jmgraph 3.2.26 → 3.2.28
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/README.md +188 -0
- package/dist/jmgraph.core.min.js +1 -1
- package/dist/jmgraph.core.min.js.map +1 -1
- package/dist/jmgraph.js +2713 -425
- package/dist/jmgraph.min.js +1 -1
- package/index.d.ts +142 -1
- package/package.json +1 -1
- package/src/core/jmControl.js +827 -127
- package/src/core/jmEvents.js +154 -0
- package/src/core/jmFilter.js +38 -1
- package/src/core/jmGradient.js +59 -8
- package/src/core/jmGraph.js +51 -7
- package/src/core/jmLayer.js +34 -2
- package/src/core/jmList.js +167 -0
- package/src/core/jmObject.js +128 -8
- package/src/core/jmPath.js +43 -5
- package/src/core/jmProperty.js +181 -2
- package/src/core/jmShadow.js +36 -7
- package/src/core/jmUtils.js +187 -14
- package/src/lib/webgl/base.js +211 -83
- package/src/lib/webgl/core/buffer.js +43 -12
- package/src/lib/webgl/core/mapSize.js +16 -7
- package/src/lib/webgl/core/mapType.js +41 -22
- package/src/lib/webgl/core/program.js +94 -54
- package/src/lib/webgl/core/shader.js +20 -8
- package/src/lib/webgl/core/texture.js +55 -32
- package/src/lib/webgl/gradient.js +49 -17
- package/src/lib/webgl/index.js +173 -24
- package/src/lib/webgl/path.js +61 -12
- package/src/shapes/jmArc.js +48 -2
- package/src/shapes/jmArrow.js +35 -2
- package/src/shapes/jmArrowLine.js +33 -2
- package/src/shapes/jmBezier.js +50 -4
- package/src/shapes/jmCircle.js +35 -2
- package/src/shapes/jmEllipse.js +29 -3
- package/src/shapes/jmHArc.js +39 -2
- package/src/shapes/jmImage.js +49 -3
- package/src/shapes/jmLabel.js +41 -2
- package/src/shapes/jmLine.js +42 -2
- package/src/shapes/jmPolygon.js +42 -3
- package/src/shapes/jmPrismatic.js +34 -2
- package/src/shapes/jmRect.js +45 -3
- package/src/shapes/jmResize.js +42 -4
- package/src/shapes/jmStar.js +38 -4
package/src/shapes/jmEllipse.js
CHANGED
|
@@ -1,9 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview jmEllipse 椭圆类
|
|
3
|
+
*
|
|
4
|
+
* jmEllipse 提供了椭圆图形的绘制功能。
|
|
5
|
+
* 椭圆是通过缩放圆形来实现的,支持完整的椭圆和椭圆弧。
|
|
6
|
+
*
|
|
7
|
+
* 主要功能:
|
|
8
|
+
* - 椭圆绘制
|
|
9
|
+
* - 椭圆弧绘制
|
|
10
|
+
* - 支持 WebGL 和 Canvas 2D 模式
|
|
11
|
+
*
|
|
12
|
+
* @module jmEllipse
|
|
13
|
+
* @author jmGraph Team
|
|
14
|
+
* @license MIT
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import {jmArc} from "./jmArc.js";
|
|
2
18
|
|
|
3
19
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
20
|
+
* 椭圆类
|
|
21
|
+
*
|
|
22
|
+
* 绘制椭圆图形,继承自 jmArc。
|
|
23
|
+
* 可以指定起始角度和结束角度来绘制椭圆弧。
|
|
7
24
|
*
|
|
8
25
|
* @class jmEllipse
|
|
9
26
|
* @extends jmArc
|
|
@@ -14,6 +31,15 @@ import {jmArc} from "./jmArc.js";
|
|
|
14
31
|
* @param {number} [params.startAngle=0] 起始角度(弧度)
|
|
15
32
|
* @param {number} [params.endAngle=Math.PI*2] 结束角度(弧度)
|
|
16
33
|
* @param {boolean} [params.anticlockwise=false] 是否逆时针绘制
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // 创建椭圆
|
|
37
|
+
* const ellipse = graph.createShape('ellipse', {
|
|
38
|
+
* center: {x: 200, y: 200},
|
|
39
|
+
* width: 200,
|
|
40
|
+
* height: 100,
|
|
41
|
+
* style: { fill: '#ff0000', stroke: '#000' }
|
|
42
|
+
* });
|
|
17
43
|
*/
|
|
18
44
|
export default class jmEllipse extends jmArc {
|
|
19
45
|
|
package/src/shapes/jmHArc.js
CHANGED
|
@@ -1,10 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview jmHArc 空心圆弧类
|
|
3
|
+
*
|
|
4
|
+
* jmHArc 提供了空心圆弧(圆环弧)的绘制功能。
|
|
5
|
+
* 由内圆和外圆两个半径定义,形成一个环形的弧。
|
|
6
|
+
*
|
|
7
|
+
* 主要功能:
|
|
8
|
+
* - 空心圆弧绘制
|
|
9
|
+
* - 支持顺时针/逆时针绘制
|
|
10
|
+
* - 支持填充和描边
|
|
11
|
+
*
|
|
12
|
+
* @module jmHArc
|
|
13
|
+
* @author jmGraph Team
|
|
14
|
+
* @license MIT
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import {jmArc} from "./jmArc.js";
|
|
18
|
+
|
|
2
19
|
/**
|
|
3
|
-
*
|
|
20
|
+
* 空心圆弧类
|
|
21
|
+
*
|
|
22
|
+
* 绘制空心圆弧(圆环弧),继承自 jmArc。
|
|
23
|
+
* 由内圆半径和外圆半径定义环形区域。
|
|
4
24
|
*
|
|
5
25
|
* @class jmHArc
|
|
6
26
|
* @extends jmArc
|
|
7
|
-
* @param {object} params
|
|
27
|
+
* @param {object} params 空心圆弧参数
|
|
28
|
+
* @param {object} [params.center] 圆弧中心点 {x, y}
|
|
29
|
+
* @param {number} [params.minRadius] 内圆半径
|
|
30
|
+
* @param {number} [params.maxRadius] 外圆半径
|
|
31
|
+
* @param {number} [params.start=0] 起始角度(弧度)
|
|
32
|
+
* @param {number} [params.end=Math.PI*2] 结束角度(弧度)
|
|
33
|
+
* @param {boolean} [params.anticlockwise=false] 是否逆时针绘制
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // 创建空心圆弧
|
|
37
|
+
* const hArc = graph.createShape('hArc', {
|
|
38
|
+
* center: {x: 200, y: 200},
|
|
39
|
+
* minRadius: 30,
|
|
40
|
+
* maxRadius: 50,
|
|
41
|
+
* start: 0,
|
|
42
|
+
* end: Math.PI,
|
|
43
|
+
* style: { fill: '#ff0000' }
|
|
44
|
+
* });
|
|
8
45
|
*/
|
|
9
46
|
|
|
10
47
|
export default class jmHArc extends jmArc {
|
package/src/shapes/jmImage.js
CHANGED
|
@@ -1,12 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview jmImage 图片类
|
|
3
|
+
*
|
|
4
|
+
* jmImage 提供了图片显示功能。
|
|
5
|
+
* 支持从 URL 或 Image 对象加载图片,支持图片裁剪和缩放。
|
|
6
|
+
*
|
|
7
|
+
* 主要功能:
|
|
8
|
+
* - 图片加载和显示
|
|
9
|
+
* - 图片裁剪
|
|
10
|
+
* - 图片缩放
|
|
11
|
+
* - 支持 WebGL 和 Canvas 2D 模式
|
|
12
|
+
*
|
|
13
|
+
* @module jmImage
|
|
14
|
+
* @author jmGraph Team
|
|
15
|
+
* @license MIT
|
|
16
|
+
*/
|
|
17
|
+
|
|
1
18
|
import {jmControl} from "../core/jmControl.js";
|
|
19
|
+
|
|
2
20
|
/**
|
|
3
|
-
*
|
|
4
|
-
* params参数中image为指定的图片源地址或图片img对象,
|
|
5
|
-
* postion=当前控件的位置,width=其宽度,height=高度,sourcePosition=从当前图片中展示的位置,sourceWidth=从图片中截取的宽度,sourceHeight=从图片中截取的高度。
|
|
21
|
+
* 图片类
|
|
6
22
|
*
|
|
23
|
+
* 显示图片控件,支持从 URL 或 Image 对象加载图片。
|
|
24
|
+
* 支持图片裁剪和缩放功能。
|
|
25
|
+
*
|
|
7
26
|
* @class jmImage
|
|
8
27
|
* @extends jmControl
|
|
9
28
|
* @param {object} params 控件参数
|
|
29
|
+
* @param {string|HTMLImageElement} [params.image] 图片源地址或图片对象
|
|
30
|
+
* @param {object} [params.position] 图片位置 {x, y}
|
|
31
|
+
* @param {number} [params.width] 图片显示宽度
|
|
32
|
+
* @param {number} [params.height] 图片显示高度
|
|
33
|
+
* @param {object} [params.sourcePosition] 图片裁剪起始位置 {x, y}
|
|
34
|
+
* @param {number} [params.sourceWidth] 图片裁剪宽度
|
|
35
|
+
* @param {number} [params.sourceHeight] 图片裁剪高度
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* // 从 URL 加载图片
|
|
39
|
+
* const img = graph.createShape('image', {
|
|
40
|
+
* image: 'path/to/image.png',
|
|
41
|
+
* position: {x: 100, y: 100},
|
|
42
|
+
* width: 200,
|
|
43
|
+
* height: 150
|
|
44
|
+
* });
|
|
45
|
+
*
|
|
46
|
+
* // 裁剪图片
|
|
47
|
+
* const croppedImg = graph.createShape('image', {
|
|
48
|
+
* image: 'path/to/sprite.png',
|
|
49
|
+
* position: {x: 100, y: 100},
|
|
50
|
+
* sourcePosition: {x: 0, y: 0},
|
|
51
|
+
* sourceWidth: 50,
|
|
52
|
+
* sourceHeight: 50,
|
|
53
|
+
* width: 100,
|
|
54
|
+
* height: 100
|
|
55
|
+
* });
|
|
10
56
|
*/
|
|
11
57
|
export default class jmImage extends jmControl {
|
|
12
58
|
|
package/src/shapes/jmLabel.js
CHANGED
|
@@ -1,10 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview jmLabel 文本标签类
|
|
3
|
+
*
|
|
4
|
+
* jmLabel 提供了文本显示功能。
|
|
5
|
+
* 支持单行和多行文本,支持自动换行。
|
|
6
|
+
*
|
|
7
|
+
* 主要功能:
|
|
8
|
+
* - 文本绘制
|
|
9
|
+
* - 自动换行
|
|
10
|
+
* - 文本对齐(水平/垂直)
|
|
11
|
+
* - 字体样式设置
|
|
12
|
+
*
|
|
13
|
+
* @module jmLabel
|
|
14
|
+
* @author jmGraph Team
|
|
15
|
+
* @license MIT
|
|
16
|
+
*/
|
|
17
|
+
|
|
1
18
|
import {jmControl} from "../core/jmControl.js";
|
|
19
|
+
|
|
2
20
|
/**
|
|
3
|
-
*
|
|
21
|
+
* 文本标签类
|
|
22
|
+
*
|
|
23
|
+
* 显示文字控件,支持多种文本样式和对齐方式。
|
|
4
24
|
*
|
|
5
25
|
* @class jmLabel
|
|
6
26
|
* @extends jmControl
|
|
7
|
-
* @param {object} params
|
|
27
|
+
* @param {object} params 参数
|
|
28
|
+
* @param {string} [params.text=''] 显示的文字内容
|
|
29
|
+
* @param {object} [params.center] 文本中心点坐标
|
|
30
|
+
* @param {object} [params.style] 样式对象
|
|
31
|
+
* @param {string} [params.style.font] 字体样式
|
|
32
|
+
* @param {string} [params.style.textAlign='left'] 水平对齐方式
|
|
33
|
+
* @param {string} [params.style.textBaseline='middle'] 垂直对齐方式
|
|
34
|
+
* @param {number} [params.style.maxWidth] 最大宽度(用于自动换行)
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* // 创建文本标签
|
|
38
|
+
* const label = graph.createShape('label', {
|
|
39
|
+
* position: {x: 100, y: 100},
|
|
40
|
+
* text: 'Hello World',
|
|
41
|
+
* style: {
|
|
42
|
+
* fill: '#000',
|
|
43
|
+
* font: '20px Arial',
|
|
44
|
+
* textAlign: 'center'
|
|
45
|
+
* }
|
|
46
|
+
* });
|
|
8
47
|
*/
|
|
9
48
|
export default class jmLabel extends jmControl {
|
|
10
49
|
|
package/src/shapes/jmLine.js
CHANGED
|
@@ -1,10 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview jmLine 直线类
|
|
3
|
+
*
|
|
4
|
+
* jmLine 提供了直线图形的绘制功能,支持实线和虚线。
|
|
5
|
+
* 虚线支持自定义间隔长度。
|
|
6
|
+
*
|
|
7
|
+
* 主要功能:
|
|
8
|
+
* - 直线绘制
|
|
9
|
+
* - 虚线模式
|
|
10
|
+
* - 自定义虚线间隔
|
|
11
|
+
*
|
|
12
|
+
* @module jmLine
|
|
13
|
+
* @author jmGraph Team
|
|
14
|
+
* @license MIT
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import {jmPath} from "../core/jmPath.js";
|
|
18
|
+
|
|
2
19
|
/**
|
|
3
|
-
*
|
|
20
|
+
* 直线类
|
|
21
|
+
*
|
|
22
|
+
* 绘制从起点到终点的直线,支持实线和虚线两种模式。
|
|
4
23
|
*
|
|
5
24
|
* @class jmLine
|
|
6
25
|
* @extends jmPath
|
|
7
|
-
* @param {object} params
|
|
26
|
+
* @param {object} params 直线参数
|
|
27
|
+
* @param {object} [params.start] 起始点 {x, y}
|
|
28
|
+
* @param {object} [params.end] 结束点 {x, y}
|
|
29
|
+
* @param {string} [params.lineType='solid'] 线类型:'solid'=实线,'dotted'=虚线
|
|
30
|
+
* @param {number} [params.dashLength=4] 虚线间隔长度
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* // 创建实线
|
|
34
|
+
* const line = graph.createShape('line', {
|
|
35
|
+
* start: {x: 0, y: 0},
|
|
36
|
+
* end: {x: 100, y: 100},
|
|
37
|
+
* style: { stroke: '#000', lineWidth: 2 }
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* // 创建虚线
|
|
41
|
+
* const dottedLine = graph.createShape('line', {
|
|
42
|
+
* start: {x: 0, y: 0},
|
|
43
|
+
* end: {x: 100, y: 100},
|
|
44
|
+
* lineType: 'dotted',
|
|
45
|
+
* dashLength: 5,
|
|
46
|
+
* style: { stroke: '#000' }
|
|
47
|
+
* });
|
|
8
48
|
*/
|
|
9
49
|
export default class jmLine extends jmPath {
|
|
10
50
|
|
package/src/shapes/jmPolygon.js
CHANGED
|
@@ -1,9 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview jmPolygon 多边形类
|
|
3
|
+
*
|
|
4
|
+
* jmPolygon 提供了多边形图形的绘制功能。
|
|
5
|
+
* 支持规则多边形(正多边形)和自定义多边形。
|
|
6
|
+
*
|
|
7
|
+
* 主要功能:
|
|
8
|
+
* - 规则多边形(正三角形、正方形、正五边形等)
|
|
9
|
+
* - 自定义多边形(通过顶点数组定义)
|
|
10
|
+
* - 填充和描边样式
|
|
11
|
+
*
|
|
12
|
+
* @module jmPolygon
|
|
13
|
+
* @author jmGraph Team
|
|
14
|
+
* @license MIT
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import {jmPath} from "../core/jmPath.js";
|
|
2
18
|
|
|
3
19
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
20
|
+
* 多边形类
|
|
21
|
+
*
|
|
22
|
+
* 绘制多边形图形,支持规则多边形和自定义多边形。
|
|
23
|
+
* 规则多边形通过边数和半径自动计算顶点,
|
|
24
|
+
* 自定义多边形通过顶点数组定义。
|
|
7
25
|
*
|
|
8
26
|
* @class jmPolygon
|
|
9
27
|
* @extends jmPath
|
|
@@ -12,6 +30,27 @@ import {jmPath} from "../core/jmPath.js";
|
|
|
12
30
|
* @param {number} [params.sides=3] 多边形边数(3-100)
|
|
13
31
|
* @param {number} [params.radius=50] 多边形半径(像素)
|
|
14
32
|
* @param {object} [params.center={x:0,y:0}] 多边形中心点坐标
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* // 创建正六边形
|
|
36
|
+
* const hexagon = graph.createShape('polygon', {
|
|
37
|
+
* center: {x: 200, y: 200},
|
|
38
|
+
* sides: 6,
|
|
39
|
+
* radius: 50,
|
|
40
|
+
* style: { fill: '#ff0000', stroke: '#000' }
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* // 创建自定义多边形
|
|
44
|
+
* const polygon = graph.createShape('polygon', {
|
|
45
|
+
* points: [
|
|
46
|
+
* {x: 100, y: 100},
|
|
47
|
+
* {x: 200, y: 50},
|
|
48
|
+
* {x: 300, y: 100},
|
|
49
|
+
* {x: 250, y: 200},
|
|
50
|
+
* {x: 150, y: 200}
|
|
51
|
+
* ],
|
|
52
|
+
* style: { fill: '#00ff00' }
|
|
53
|
+
* });
|
|
15
54
|
*/
|
|
16
55
|
export default class jmPolygon extends jmPath {
|
|
17
56
|
|
|
@@ -1,10 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview jmPrismatic 棱形类
|
|
3
|
+
*
|
|
4
|
+
* jmPrismatic 提供了棱形(菱形)图形的绘制功能。
|
|
5
|
+
* 棱形是一个四边形,其对角线互相垂直平分。
|
|
6
|
+
*
|
|
7
|
+
* 主要功能:
|
|
8
|
+
* - 棱形绘制
|
|
9
|
+
* - 支持填充和描边
|
|
10
|
+
* - 自定义宽高
|
|
11
|
+
*
|
|
12
|
+
* @module jmPrismatic
|
|
13
|
+
* @author jmGraph Team
|
|
14
|
+
* @license MIT
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import {jmPath} from "../core/jmPath.js";
|
|
18
|
+
|
|
2
19
|
/**
|
|
3
|
-
*
|
|
20
|
+
* 棱形类
|
|
21
|
+
*
|
|
22
|
+
* 绘制棱形(菱形)图形,继承自 jmPath。
|
|
23
|
+
* 棱形由中心点、宽度和高度定义。
|
|
4
24
|
*
|
|
5
25
|
* @class jmPrismatic
|
|
6
26
|
* @extends jmPath
|
|
7
|
-
* @param {object} params 参数
|
|
27
|
+
* @param {object} params 参数
|
|
28
|
+
* @param {object} [params.center] 棱形中心点 {x, y}
|
|
29
|
+
* @param {number} [params.width] 棱形宽度
|
|
30
|
+
* @param {number} [params.height] 棱形高度
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* // 创建棱形
|
|
34
|
+
* const prismatic = graph.createShape('prismatic', {
|
|
35
|
+
* center: {x: 200, y: 200},
|
|
36
|
+
* width: 100,
|
|
37
|
+
* height: 80,
|
|
38
|
+
* style: { fill: '#ff0000', stroke: '#000' }
|
|
39
|
+
* });
|
|
8
40
|
*/
|
|
9
41
|
export default class jmPrismatic extends jmPath {
|
|
10
42
|
|
package/src/shapes/jmRect.js
CHANGED
|
@@ -1,14 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview jmRect 矩形类
|
|
3
|
+
*
|
|
4
|
+
* jmRect 提供了矩形图形的绘制功能,支持圆角矩形。
|
|
5
|
+
* 圆角支持四角独立设置,可以创建各种样式的矩形。
|
|
6
|
+
*
|
|
7
|
+
* 主要功能:
|
|
8
|
+
* - 矩形绘制
|
|
9
|
+
* - 圆角矩形(支持四角独立圆角)
|
|
10
|
+
* - 虚线边框
|
|
11
|
+
* - 填充和描边样式
|
|
12
|
+
*
|
|
13
|
+
* @module jmRect
|
|
14
|
+
* @author jmGraph Team
|
|
15
|
+
* @license MIT
|
|
16
|
+
*/
|
|
17
|
+
|
|
1
18
|
import {jmPath} from "../core/jmPath.js";
|
|
2
19
|
import {jmArc} from './jmArc.js';
|
|
3
20
|
import {jmLine} from './jmLine.js';
|
|
4
21
|
|
|
5
22
|
/**
|
|
6
|
-
*
|
|
23
|
+
* 矩形类
|
|
24
|
+
*
|
|
25
|
+
* 绘制矩形图形,支持圆角和虚线边框。
|
|
26
|
+
* 圆角可以统一设置或四角独立设置。
|
|
7
27
|
*
|
|
8
28
|
* @class jmRect
|
|
9
29
|
* @extends jmPath
|
|
10
|
-
* @param {object} params 参数
|
|
11
|
-
*
|
|
30
|
+
* @param {object} params 参数
|
|
31
|
+
* @param {object} [params.position] 矩形左上角顶点坐标 {x, y}
|
|
32
|
+
* @param {number} [params.width] 矩形宽度
|
|
33
|
+
* @param {number} [params.height] 矩形高度
|
|
34
|
+
* @param {number|object} [params.radius] 边角弧度,支持数字(四角相同)或对象 { topLeft, topRight, bottomRight, bottomLeft }
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* // 创建普通矩形
|
|
38
|
+
* const rect = graph.createShape('rect', {
|
|
39
|
+
* position: {x: 100, y: 100},
|
|
40
|
+
* width: 200,
|
|
41
|
+
* height: 150,
|
|
42
|
+
* style: { fill: '#ff0000', stroke: '#000' }
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* // 创建圆角矩形
|
|
46
|
+
* const roundedRect = graph.createShape('rect', {
|
|
47
|
+
* position: {x: 100, y: 100},
|
|
48
|
+
* width: 200,
|
|
49
|
+
* height: 150,
|
|
50
|
+
* radius: 10, // 四角统一圆角
|
|
51
|
+
* // 或 radius: { topLeft: 5, topRight: 10, bottomRight: 15, bottomLeft: 20 }
|
|
52
|
+
* style: { fill: '#00ff00' }
|
|
53
|
+
* });
|
|
12
54
|
*/
|
|
13
55
|
export default class jmRect extends jmPath {
|
|
14
56
|
|
package/src/shapes/jmResize.js
CHANGED
|
@@ -1,11 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview jmResize 可缩放控件类
|
|
3
|
+
*
|
|
4
|
+
* jmResize 提供了可缩放的矩形控件功能。
|
|
5
|
+
* 在矩形四边和四角添加可拖拽的控制点,实现图形的缩放和调整。
|
|
6
|
+
*
|
|
7
|
+
* 主要功能:
|
|
8
|
+
* - 8个方向的控制点
|
|
9
|
+
* - 鼠标拖拽缩放
|
|
10
|
+
* - 支持旋转后的缩放
|
|
11
|
+
* - 自定义最小尺寸
|
|
12
|
+
*
|
|
13
|
+
* @module jmResize
|
|
14
|
+
* @author jmGraph Team
|
|
15
|
+
* @license MIT
|
|
16
|
+
*/
|
|
17
|
+
|
|
1
18
|
import {jmRect} from "./jmRect.js";
|
|
19
|
+
|
|
2
20
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
21
|
+
* 可缩放控件类
|
|
22
|
+
*
|
|
23
|
+
* 继承自 jmRect,在矩形四边和四角添加可拖拽的控制点。
|
|
24
|
+
* 用于实现图形的缩放和调整功能。
|
|
6
25
|
*
|
|
7
26
|
* @class jmResize
|
|
8
27
|
* @extends jmRect
|
|
28
|
+
* @param {object} params 控件参数
|
|
29
|
+
* @param {boolean} [params.resizable=true] 是否可缩放
|
|
30
|
+
* @param {boolean} [params.movable] 是否可移动
|
|
31
|
+
* @param {number} [params.rectSize=8] 控制点大小
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* // 创建可缩放矩形
|
|
35
|
+
* const resize = graph.createShape('resize', {
|
|
36
|
+
* position: {x: 100, y: 100},
|
|
37
|
+
* width: 200,
|
|
38
|
+
* height: 150,
|
|
39
|
+
* resizable: true,
|
|
40
|
+
* movable: true
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* // 监听缩放事件
|
|
44
|
+
* resize.on('resize', (px, py, dx, dy) => {
|
|
45
|
+
* console.log('缩放中', px, py, dx, dy);
|
|
46
|
+
* });
|
|
9
47
|
*/
|
|
10
48
|
export default class jmResize extends jmRect {
|
|
11
49
|
|
|
@@ -315,7 +353,7 @@ export default class jmResize extends jmRect {
|
|
|
315
353
|
break;
|
|
316
354
|
}
|
|
317
355
|
case 6: {
|
|
318
|
-
r.position.x = (newLocation.width - r.
|
|
356
|
+
r.position.x = (newLocation.width - r.width) / 2;
|
|
319
357
|
r.position.y = newLocation.height - r.height / 2;
|
|
320
358
|
break;
|
|
321
359
|
}
|
package/src/shapes/jmStar.js
CHANGED
|
@@ -1,18 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview jmStar 星形类
|
|
3
|
+
*
|
|
4
|
+
* jmStar 提供了星形图形的绘制功能。
|
|
5
|
+
* 支持自定义顶点数和内外半径,创建各种星形图案。
|
|
6
|
+
*
|
|
7
|
+
* 主要功能:
|
|
8
|
+
* - 星形绘制
|
|
9
|
+
* - 自定义角数
|
|
10
|
+
* - 自定义内外半径
|
|
11
|
+
*
|
|
12
|
+
* @module jmStar
|
|
13
|
+
* @author jmGraph Team
|
|
14
|
+
* @license MIT
|
|
15
|
+
*/
|
|
16
|
+
|
|
1
17
|
import {jmPath} from "../core/jmPath.js";
|
|
2
18
|
|
|
3
19
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
20
|
+
* 星形类
|
|
21
|
+
*
|
|
22
|
+
* 绘制星形图形,支持自定义顶点数和内外半径。
|
|
23
|
+
* 星形由交替的外半径和内半径顶点组成。
|
|
7
24
|
*
|
|
8
25
|
* @class jmStar
|
|
9
26
|
* @extends jmPath
|
|
10
27
|
* @param {object} params 星形的参数
|
|
11
|
-
* @param {array} [params.points] 自定义顶点数组,如果提供则忽略其他参数
|
|
12
28
|
* @param {number} [params.points=5] 星形顶点数(角数,3-50)
|
|
13
29
|
* @param {number} [params.radius=50] 星形外半径(从中心到尖角的距离)
|
|
14
30
|
* @param {number} [params.innerRadius=25] 星形内半径(从中心到凹陷处的距离)
|
|
15
31
|
* @param {object} [params.center={x:0,y:0}] 星形中心点坐标
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* // 创建五角星
|
|
35
|
+
* const star = graph.createShape('star', {
|
|
36
|
+
* center: {x: 200, y: 200},
|
|
37
|
+
* points: 5,
|
|
38
|
+
* radius: 50,
|
|
39
|
+
* innerRadius: 25,
|
|
40
|
+
* style: { fill: '#ff0000', stroke: '#000' }
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* // 创建六角星
|
|
44
|
+
* const hexStar = graph.createShape('star', {
|
|
45
|
+
* center: {x: 200, y: 200},
|
|
46
|
+
* points: 6,
|
|
47
|
+
* radius: 60,
|
|
48
|
+
* innerRadius: 30
|
|
49
|
+
* });
|
|
16
50
|
*/
|
|
17
51
|
export default class jmStar extends jmPath {
|
|
18
52
|
|