ArchitectureColoredPainting.../1st_encode/byte.md

209 lines
10 KiB
Markdown
Raw Normal View History

2022-07-29 10:43:47 +08:00
# 整体结构总览
> 所有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 | |
| > 单次迭代孩子 children 列表长度 | 8 | 其中每个operations列表代表一个孩子 |
| >> 迭代操作 operations 列表长度 | 8 | 详见[iterate-operations](#iterate-operations) |
2022-07-29 10:43:47 +08:00
# 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 | 单精度浮点数 |