init commit
commit
a0d9c67ea9
|
@ -0,0 +1,2 @@
|
|||
.idea
|
||||
**/.idea
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,208 @@
|
|||
# 整体结构总览
|
||||
> 注:所有x、y坐标都为有符号整数,实际处理时需要除以1000变回小数
|
||||
|
||||
| 说明 | 位数 | 备注 |
|
||||
| ------------------------------ | ---- | ---------------------------------------------- |
|
||||
| 图像宽度 width | 16 | 实际位数+11记为W |
|
||||
| 图像高度 height | 16 | 实际位数+11记为H |
|
||||
| elements列表长度 | 16 | 标记了该图像上的所有元素原型 |
|
||||
| > 元素种类 type | 4 | |
|
||||
| > 元素信息 data | | 详见[elements](#elements) |
|
||||
| map列表长度 | 16 | 标记了该图像上所有元素原型在图像中的信息 |
|
||||
| > 元素id element | 16 | |
|
||||
| > 坐标 position | 0 | |
|
||||
| >> x坐标 | W | |
|
||||
| >> y坐标 | H | |
|
||||
| > 所处层数 level | 16 | 从0x00FF开始递增,置入底层操作直接移到当前最下 |
|
||||
| > 附加信息 attached 列表长度 | 8 | 详见[map-attached](#map-attached) |
|
||||
| iterate列表长度 | 16 | 标记该图像中应用迭代函数系统的信息 |
|
||||
| > 是否为元素组 element-group | 1 | 若为1,则在elements中寻找组的原始map信息 |
|
||||
| > 原始元素mapId target | 16 | |
|
||||
| > 迭代次数 times | 32 | |
|
||||
| > 迭代操作 operations 列表长度 | 8 | 详见[iterate-operations](#iterate-operations) |
|
||||
|
||||
# elements
|
||||
## type
|
||||
| id | 说明 | 备注 |
|
||||
| --- | -------------- | ----------- |
|
||||
| 0 | 路径 path | 起点为(0,0) |
|
||||
| 1 | 多边形 polygon | 起点为(0,0) |
|
||||
| 2 | 圆形 round | 圆心为(0,0) |
|
||||
| 3 | 元素组 group | |
|
||||
|
||||
## data
|
||||
### path
|
||||
| 说明 | 位数 | 备注 |
|
||||
| ---------------------------- | ---- | --------------------------------------- |
|
||||
| 路径操作 operations 列表长度 | 16 | |
|
||||
| > 操作种类 type | 4 | |
|
||||
| > 操作信息 data | | 详见[path-operations](#path-operations) |
|
||||
|
||||
|
||||
> #### path-operations
|
||||
> ##### type
|
||||
> | id | 说明 | 备注 |
|
||||
> | --- | ----------------------------------- | ------------------------------------------------ |
|
||||
> | 0 | 直线 line | |
|
||||
> | 1 | 三次贝塞尔曲线 curve | 非列表头时,默认使用平滑曲线 |
|
||||
> | 2 | 平滑三次贝塞尔曲线 curve-smooth | |
|
||||
> | 3 | 二次贝塞尔曲线 quadratic | 非列表头时,默认使用平滑曲线 |
|
||||
> | 4 | 平滑二次贝塞尔曲线 quadratic-smooth | |
|
||||
> | 5 | 圆弧 arc | |
|
||||
> | 6 | 封闭图形 zeal | 用直线连接当前点与起点,封闭该图形,必须为列表尾 |
|
||||
>
|
||||
> ##### line
|
||||
> | 说明 | 位数 | 备注 |
|
||||
> | --------------- | ---- | ---- |
|
||||
> | 目标坐标 target | 0 | |
|
||||
> | > x坐标 | W | |
|
||||
> | > y坐标 | H | |
|
||||
>
|
||||
> ##### curve
|
||||
> | 说明 | 位数 | 备注 |
|
||||
> | ------------------ | ---- | ---- |
|
||||
> | 目标坐标 target | 0 | |
|
||||
> | > x坐标 | W | |
|
||||
> | > y坐标 | H | |
|
||||
> | 控制点 control | 0 | |
|
||||
> | > 起点控制点 start | 0 | |
|
||||
> | >> x坐标 | W | |
|
||||
> | >> y坐标 | H | |
|
||||
> | > 终点控制点 end | 0 | |
|
||||
> | >> x坐标 | W | |
|
||||
> | >> y坐标 | H | |
|
||||
>
|
||||
> ##### curve-smooth
|
||||
> | 说明 | 位数 | 备注 |
|
||||
> | --------------- | ---- | ---- |
|
||||
> | 目标坐标 target | 0 | |
|
||||
> | > x坐标 | W | |
|
||||
> | > y坐标 | H | |
|
||||
> | 控制点 control | 0 | |
|
||||
> | > x坐标 | W | |
|
||||
> | > y坐标 | H | |
|
||||
>
|
||||
> ##### quadratic
|
||||
> | 说明 | 位数 | 备注 |
|
||||
> | --------------- | ---- | ---- |
|
||||
> | 目标坐标 target | 0 | |
|
||||
> | > x坐标 | W | |
|
||||
> | > y坐标 | H | |
|
||||
> | 控制点 control | 0 | |
|
||||
> | > x坐标 | W | |
|
||||
> | > y坐标 | H | |
|
||||
>
|
||||
> ##### quadratic-smooth
|
||||
> | 说明 | 位数 | 备注 |
|
||||
> | --------------- | ---- | ---- |
|
||||
> | 目标坐标 target | 0 | |
|
||||
> | > x坐标 | W | |
|
||||
> | > y坐标 | H | |
|
||||
>
|
||||
> ##### arc
|
||||
> > circle = true
|
||||
>
|
||||
> | 说明 | 位数 | 备注 |
|
||||
> | -------------------- | ---------- | --------------------------------- |
|
||||
> | 是否为正圆 circle | 1 | 否则为椭圆 |
|
||||
> | 圆心坐标 center | 0 | |
|
||||
> | > x坐标 | W | |
|
||||
> | > y坐标 | H | |
|
||||
> | 半径 radius | max(W,H) | 用无符号整数存小数,结果除100 |
|
||||
> | 取线角度 angle | 17 | 用17位有符号整数存小数,结果除100 |
|
||||
>
|
||||
> > circle = false
|
||||
>
|
||||
> | 说明 | 位数 | 备注 |
|
||||
> | -------------------- | ---------- | --------------------------------- |
|
||||
> | 是否为正圆 circle | 1 | 否则为椭圆 |
|
||||
> | 圆心坐标 center | 0 | |
|
||||
> | > x坐标 | W | |
|
||||
> | > y坐标 | H | |
|
||||
> | 轴长 axis-length | 0 | 用无符号整数存小数,结果除100 |
|
||||
> | > x轴 | max(W,H)| |
|
||||
> | > y轴 | max(W,H) | |
|
||||
> | 取线角度 angle | 17 | 用17位有符号整数存小数,结果除100 |
|
||||
|
||||
### polygon
|
||||
| 说明 | 位数 | 备注 |
|
||||
| ---------------------- | ---- | ---------- |
|
||||
| 点坐标 points 列表长度 | 16 | 逆时针排列 |
|
||||
| > x坐标 | W | |
|
||||
| > y坐标 | H | |
|
||||
|
||||
### round
|
||||
> circle = true
|
||||
|
||||
| 说明 | 位数 | 备注 |
|
||||
| ----------------- | -------- | --------------------------------- |
|
||||
| 是否为正圆 circle | 1 | 否则为椭圆 |
|
||||
| 半径 radius | max(W,H) | 用无符号整数存小数,结果除100 |
|
||||
| 取线角度 angle | 17 | 用17位有符号整数存小数,结果除100 |
|
||||
|
||||
> circle = false
|
||||
|
||||
| 说明 | 位数 | 备注 |
|
||||
| ----------------- | -------- | --------------------------------- |
|
||||
| 是否为正圆 circle | 1 | 否则为椭圆 |
|
||||
| 轴长 axis-length | 0 | 用无符号整数存小数,结果除100 |
|
||||
| > x轴 | max(W,H) | |
|
||||
| > y轴 | max(W,H) | |
|
||||
| 取线角度 angle | 17 | 用17位有符号整数存小数,结果除100 |
|
||||
|
||||
### group
|
||||
| 说明 | 位数 | 备注 |
|
||||
| ------------------------ | ---- | ------------------- |
|
||||
| 组成员 members 列表长度 | 16 | |
|
||||
| > 是否是map中元素 of-map | 1 | 否则为iterate中元素 |
|
||||
| > 元素id id | 16 | |
|
||||
|
||||
# map-attached
|
||||
## type
|
||||
| id | 说明 | 备注 |
|
||||
| --- | ----------- | ------ |
|
||||
| 0 | 旋转 rotate | |
|
||||
| 1 | 缩放 zoom | |
|
||||
| 2 | 翻转 flip | 无data |
|
||||
| 3 | 阴影 shadow | 未实现 |
|
||||
| 4 | 边框 border | 未实现 |
|
||||
|
||||
## data
|
||||
### rotate
|
||||
| 说明 | 位数 | 备注 |
|
||||
| -------------- | ---- | --------------------------------- |
|
||||
| 旋转角度 angle | 17 | 用17位有符号整数存小数,结果除100 |
|
||||
|
||||
### zoom
|
||||
| 说明 | 位数 | 备注 |
|
||||
| ------------- | ---- | ------------ |
|
||||
| 缩放比例 zoom | 32 | 单精度浮点数 |
|
||||
|
||||
# iterate-operations
|
||||
## type
|
||||
| id | 说明 | 备注 |
|
||||
| --- | ----------- | ------ |
|
||||
| 0 | 移动 move | |
|
||||
| 1 | 旋转 rotate | |
|
||||
| 2 | 缩放 zoom | |
|
||||
| 3 | 翻转 flip | 无data |
|
||||
|
||||
## data
|
||||
### move
|
||||
| 说明 | 位数 | 备注 |
|
||||
| --------- | ---- | ---- |
|
||||
| x轴增量dx | W | |
|
||||
| y轴增量dy | H | |
|
||||
|
||||
### rotate
|
||||
| 说明 | 位数 | 备注 |
|
||||
| ------------------- | ---- | --------------------------------- |
|
||||
| 旋转中心坐标 center | 0 | |
|
||||
| > x坐标 | W | |
|
||||
| > y坐标 | H | |
|
||||
| 旋转角度 angle | 17 | 用17位有符号整数存小数,结果除100 |
|
||||
|
||||
### zoom
|
||||
| 说明 | 位数 | 备注 |
|
||||
| ------------- | ---- | ------------ |
|
||||
| 缩放比例 zoom | 32 | 单精度浮点数 |
|
|
@ -0,0 +1,273 @@
|
|||
{
|
||||
"height": 1080,
|
||||
"width": 1080,
|
||||
"elements": [
|
||||
{
|
||||
"type": "path",
|
||||
"data": {
|
||||
"operations": [
|
||||
{
|
||||
"type": "line",
|
||||
"data": {
|
||||
"target": {
|
||||
"x": 15,
|
||||
"y": 20
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "curve",
|
||||
"data": {
|
||||
"target": {
|
||||
"x": 18,
|
||||
"y": 21
|
||||
},
|
||||
"control": {
|
||||
"start": {
|
||||
"x": 17,
|
||||
"y": 22
|
||||
},
|
||||
"end": {
|
||||
"x": 20,
|
||||
"y": 23
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "curve-smooth",
|
||||
"data": {
|
||||
"target": {
|
||||
"x": 18,
|
||||
"y": 21
|
||||
},
|
||||
"control": {
|
||||
"x": 18,
|
||||
"y": 21
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "quadratic",
|
||||
"data": {
|
||||
"target": {
|
||||
"x": 18,
|
||||
"y": 21
|
||||
},
|
||||
"control": {
|
||||
"x": 18,
|
||||
"y": 21
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "quadratic-smooth",
|
||||
"data": {
|
||||
"target": {
|
||||
"x": 18,
|
||||
"y": 21
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "arc",
|
||||
"data": {
|
||||
"circle": true,
|
||||
"center": {
|
||||
"x": 18,
|
||||
"y": 21
|
||||
},
|
||||
"radius": 5,
|
||||
"angle": 6000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "arc",
|
||||
"data": {
|
||||
"circle": false,
|
||||
"center": {
|
||||
"x": 18,
|
||||
"y": 21
|
||||
},
|
||||
"axis-length": {
|
||||
"x": 4,
|
||||
"y": 6
|
||||
},
|
||||
"angle": 6000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "zeal"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "polygon",
|
||||
"data": {
|
||||
"points": [
|
||||
{
|
||||
"x": 10,
|
||||
"y": 20
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 20
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 20
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 20
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"y": 20
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "round",
|
||||
"data": {
|
||||
"circle": true,
|
||||
"radius": 5,
|
||||
"angle": 6000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "round",
|
||||
"data": {
|
||||
"circle": false,
|
||||
"axis-length": {
|
||||
"x": 4,
|
||||
"y": 6
|
||||
},
|
||||
"angle": 6000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "group",
|
||||
"members": [
|
||||
{
|
||||
"of-map": true,
|
||||
"id": 2
|
||||
},
|
||||
{
|
||||
"of-map": false,
|
||||
"id": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"map": [
|
||||
{
|
||||
"element": 1,
|
||||
"position": {
|
||||
"x": 18,
|
||||
"y": 21
|
||||
},
|
||||
"level": 1,
|
||||
"attached": [
|
||||
{
|
||||
"type": "rotate",
|
||||
"data": {
|
||||
"angle": 6000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "zoom",
|
||||
"data": {
|
||||
"zoom": 1.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "flip"
|
||||
},
|
||||
{
|
||||
"type": "shadow",
|
||||
"data": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"element": 2,
|
||||
"position": {
|
||||
"x": 18,
|
||||
"y": 21
|
||||
},
|
||||
"level": 1,
|
||||
"attached": []
|
||||
}
|
||||
],
|
||||
"iterate": [
|
||||
{
|
||||
"element-group": false,
|
||||
"target": 2,
|
||||
"times": 5,
|
||||
"operations": [
|
||||
{
|
||||
"type": "move",
|
||||
"data": {
|
||||
"dx": 5,
|
||||
"dy": 6
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "rotate",
|
||||
"data": {
|
||||
"center": {
|
||||
"dx": 0,
|
||||
"dy": 0
|
||||
},
|
||||
"dθ": 6000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "zoom",
|
||||
"data": {
|
||||
"zoom": 1.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "flip"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"element-group": true,
|
||||
"target": 5,
|
||||
"times": 5,
|
||||
"operations": [
|
||||
{
|
||||
"type": "move",
|
||||
"data": {
|
||||
"dx": 5,
|
||||
"dy": 6
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "rotate",
|
||||
"data": {
|
||||
"center": {
|
||||
"dx": 0,
|
||||
"dy": 0
|
||||
},
|
||||
"dθ": 6000
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "zoom",
|
||||
"data": {
|
||||
"zoom": 1.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "flip"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue