画图数据结构
通用字段
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | 图形类型 | string | 是 | 'arc' , 'circle' , 'compoundPath' , 'line' , 'polygon' , 'polyline' , 'rect' , 'text' , 'image' , 'bezierCurve' , 'sector' , 'group' , 'droplet' , 'ellipse' , 'heart' , 'isogon' , 'rose' , 'star'"bezierCurve" | ||
stroke | "none" "#fff" | 图形轮廓颜色 | string | 否 | 颜色值 | |
fill | "none" | 图形填充颜色 | string | 否 | 颜色值 | |
fillOpacity | 1 | 图形填充颜色透明度 | number | 否 | 取值范围 0-1 | |
strokeOpacity | 1 | 图形轮廓颜色透明度 | number | 否 | 取值范围 0-1 | |
zlevel | 0 | 图形层级 | number | 否 | ||
draggable | false | 图形是否可以拖拽 | boolean | 否 | ||
params | {} | 给图形添加的额外参数 | boolean | 否 | 对图点击等操作需要拿原数据的时候非常有用 |
示例
json
{
"type": "text",
"x": 0,
"y": 0,
"text": "你好",
"fontSize": 100,
"fontWeight": 400,
"culling": false,
"cursor": false,
"draggable": false,
"progressive": -1,
"rectHover": false,
"silent": false,
"fill": "#ccc",
"stroke": "#ccc",
"opacity": 1,
"lineDash": null,
"lineDashOffset": null,
"shadowBlur": 0,
"shadowColor": "transparent",
...
}
1. 直线
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "line" | 图的类型 | string | 是 | "line" | |
x1 | 0 | 起始点横坐标 | number | 是 | ||
y1 | 0 | 起始点纵坐标 | number | 是 | ||
x2 | 0 | 终止点横坐标 | number | 是 | ||
y2 | 0 | 终止点纵坐标 | number | 是 | ||
lineWidth | 1 | 线条宽度 | number | 否 | ||
lineDash | "solid" | 线条类型 | string | 否 | "solid"(实线) "dashed"(虚线) "dotted"(点虚线) |
示例
json
{
"type": "line",
"x1": 0,
"y1": 0,
"x2": 100,
"y2": 100,
"stroke": "red"
}
2. 矩形
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "rect" | 图的类型 | string | 是 | "rect" | |
x | 0 | 起始点横坐标 | number | 是 | ||
y | 0 | 起始点纵坐标 | number | 是 | ||
width | 0 | 矩形宽 | number | 是 | ||
height | 0 | 矩形高 | number | 是 |
示例
json
{
"type": "rect",
"x": 0,
"y": 0,
"width": 100,
"height": 100,
"stroke": "red"
}
3. 闭合多边形
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "polygon" | 图的类型 | string | 是 | "polygon" | |
points | 点集合 | number[][] | 是 |
示例
json
{
"type": "polygon",
"points": [
[0, 0],
[100, 0],
[100, 100]
],
"stroke": "red"
}
4. 不闭合多边形
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "polyline" | 图的类型 | string | 是 | "polyline" | |
points | 点集合 | number[][] | 是 |
示例
json
{
"type": "polyline",
"points": [
[0, 0],
[100, 0],
[100, 100]
],
"stroke": "red"
}
5. 圆弧
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "arc" | 图的类型 | string | 是 | "arc" | |
cx | 0 | 圆心横坐标 | number | 是 | ||
cy | 0 | 圆心纵坐标 | number | 是 | ||
r | 0 | 半径 | number | 是 | ||
startAngle | 0 | 起始角度(以水平 x 轴右方向为 0 度) | number | 否 | 正数,负数都可以 | |
endAngle | 0 | 终止角度(以水平 x 轴右方向为 0 度) | number | 否 | 正数,负数都可以 | |
clockwise | true | 顺时针 | boolean | 否 |
示例
json
{
"type": "arc",
"cx": 0,
"cy": 0,
"r": 100,
"startAngle": 0,
"endAngle": 90
}
6. 圆
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "circle" | 图的类型 | string | 是 | "circle" | |
cx | 0 | 圆心横坐标 | number | 是 | ||
cy | 0 | 圆心纵坐标 | number | 是 | ||
r | 0 | 半径 | number | 是 |
示例
json
{
"type": "circle",
"cx": 0,
"cy": 0,
"r": 100
}
7. 扇形
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "sector" | 图的类型 | string | 是 | "sector" | |
cx | 0 | 圆心横坐标 | number | 是 | ||
cy | 0 | 圆心纵坐标 | number | 是 | ||
r | 0 | 半径 | number | 是 | ||
r0 | 0 | 内半径 | number | 否 | 一般给 0 | |
startAngle | 0 | 起始角度(以水平 x 轴右方向为 0 度) | number | 否 | 正数,负数都可以 | |
endAngle | 0 | 终止角度(以水平 x 轴右方向为 0 度) | number | 否 | 正数,负数都可以 | |
clockwise | true | 顺时针 | boolean | 否 |
示例
json
{
"type": "sector",
"cx": 0,
"cy": 0,
"r": 100,
"r0": 100,
"startAngle": 0,
"endAngle": 90
}
8. 文本
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "text" | 图的类型 | string | 是 | "text" | |
x | 0 | 起始点横坐标 | number | 是 | ||
y | 0 | 起始点纵坐标 | number | 是 | ||
text | 文本内容 | string | 是 | |||
fontSize | 16 | 文本字号 | number | 否 | ||
fontWeight | 400 | 文本粗细 | number | 否 |
示例
json
{
"type": "text",
"x": 0,
"y": 0,
"text": "你好",
"fontSize": 100,
"fontWeight": 400
}
9. 图片
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "image" | 图的类型 | string | 是 | "image" | |
x | 0 | 起始点横坐标 | number | 是 | ||
y | 0 | 起始点纵坐标 | number | 是 | ||
width | 0 | 图片宽 | number | 是 | ||
height | 0 | 图片高 | number | 是 | ||
image | 0 | 图片 | string HTMLImageElement HTMLCanvasElement | 是 |
示例
json
{
"type": "image",
"x": 0,
"y": 0,
"width": 100,
"height": 100,
"image": "./img.jpg"
}
10. 贝塞尔曲线
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "bezierCurve" | 图的类型 | string | 是 | "bezierCurve" | |
x1 | 0 | 起始点横坐标 | number | 是 | ||
y1 | 0 | 起始点纵坐标 | number | 是 | ||
x2 | 0 | 终点横坐标 | number | 是 | ||
y2 | 0 | 终点纵坐标 | number | 是 | ||
cpx1 | 0 | 断点 1 横坐标 | number | 是 | ||
cpy1 | 0 | 断点 1 纵坐标 | number | 是 | ||
cpx2 | 0 | 断点 2 横坐标 | number | 否 | ||
cpy2 | 0 | 断点 2 纵坐标 | number | 否 |
示例
json
{
"type": "bezierCurve",
"x1": 0,
"y1": 0,
"cpx1": 50,
"cpy1": 50,
"cpx2": 150,
"cpy2": 150,
"x2": 200,
"y2": 200
}
11. 水滴
v1.0.0
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "droplet" | 图的类型 | string | 是 | "droplet" | |
cx | 0 | 圆心横坐标 | number | 是 | ||
cy | 0 | 圆心纵坐标 | number | 是 | ||
width | 0 | 水滴宽 | number | 是 | ||
height | 0 | 水滴高 | number | 是 |
示例
json
{
"type": "droplet",
"cx": 600,
"cy": 600,
"width": 168,
"height": 168,
"stroke": "red",
"fill": "red"
}
12. 椭圆
v1.0.0
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "ellipse" | 图的类型 | string | 是 | "ellipse" | |
cx | 0 | 圆心横坐标 | number | 是 | ||
cy | 0 | 圆心纵坐标 | number | 是 | ||
rx | 0 | 椭圆横向半径 | number | 是 | ||
rx | 0 | 椭圆纵向半径 | number | 是 |
示例
json
{
"type": "ellipse",
"cx": 600,
"cy": 600,
"rx": 168,
"ry": 200,
"stroke": "red",
"fill": "red"
}
13. 心形
v1.0.0
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "heart" | 图的类型 | string | 是 | "heart" | |
cx | 0 | 圆心横坐标 | number | 是 | ||
cy | 0 | 圆心纵坐标 | number | 是 | ||
width | 0 | 心形宽 | number | 是 | ||
height | 0 | 心形高 | number | 是 |
示例
json
{
"type": "heart",
"cx": 100,
"cy": 100,
"width": 50,
"height": 50,
"stroke": "yellow",
"fill": "yellow"
}
14. 正多边形
v1.0.0
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "isogon" | 图的类型 | string | 是 | "isogon" | |
x | 0 | 圆心横坐标 | number | 是 | ||
y | 0 | 圆心纵坐标 | number | 是 | ||
r | 0 | 半径 | number | 是 | ||
n | 0 | 边数 | number | 是 |
示例
json
{
"type": "isogon",
"x": 400,
"y": 400,
"r": 50,
"n": 5
}
15. 玫瑰线
v1.0.0
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "rose" | 图的类型 | string | 是 | "rose" | |
cx | 0 | 圆心横坐标 | number | 是 | ||
cy | 0 | 圆心纵坐标 | number | 是 | ||
r | [] | 半径 | number[] | 是 | ||
n | 0 | 花瓣数 | number | 是 | ||
k | 1 | 玫瑰线参数 | number | 是 |
示例
json
{
"type": "rose",
"cx": 600,
"cy": 400,
"n": 2,
"r": [100, 120, 140, 160, 200, 220, 240, 260, 280],
"k": 5,
"stroke": "green"
}
16. 星形
v1.0.0
字段名称 | 默认值 | 字段解释 | 数据类型 | 是否必填 | 可选值 | 备注 |
---|---|---|---|---|---|---|
type | "star" | 图的类型 | string | 是 | "star" | |
cx | 0 | 圆心横坐标 | number | 是 | ||
cy | 0 | 圆心纵坐标 | number | 是 | ||
r | 0 | 半径 | number | 是 | ||
n | 0 | 瓣数 | number | 是 | ||
r0 | 0 | 内半径 | number | 是 |
示例
json
{
"type": "star",
"cx": 100,
"cy": 100,
"n": 5,
"r": 100,
"r0": 50,
"stroke": "red",
"fill": "red"
}