Skip to content

Commit 056dad5

Browse files
committed
📝 完善文档
1 parent ae65043 commit 056dad5

File tree

3 files changed

+54
-100
lines changed

3 files changed

+54
-100
lines changed

docs-pg/CublicCatmullRomSpline.md

Lines changed: 0 additions & 62 deletions
This file was deleted.

docs-pg/笔迹涂鸦功能设计.md

Lines changed: 0 additions & 37 deletions
This file was deleted.

docs/content/docs/app/stage-object/entity/pen-stroke.mdx

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,20 @@ icon: Shell
1313
2. 标注
1414
3. 贯穿可连接实体后选中不规则区域的实体
1515

16+
## 绘制直线
17+
18+
按住shift键之后,左键拖动
19+
20+
如果想绘制垂直与坐标轴的直线,需要同时按住ctrl键和shift键。
21+
22+
## 量角器
23+
24+
按住shift键之后,会出现跟随鼠标的量角器
25+
26+
此时转动滚轮即可旋转量角器
27+
28+
可以配合窗口透明度调整快捷键,将此软件的窗口叠放在建筑设计图纸上,进行测量。
29+
1630
## 调整笔画粗细
1731

1832
1. 快捷键习惯:使用快捷键 `-``=` (键盘顶部)调整笔画粗细
@@ -32,4 +46,43 @@ icon: Shell
3246

3347
同样的,当一个 `可连接节点` 和一个涂鸦有触碰时,可以先选中可连接节点,再按 `ctrl + w` 扩散到涂鸦上,也可以先选中涂鸦,再按 `ctrl + w` 扩散到可连接节点上。
3448

35-
甚至可以逐层扩散
49+
甚至可以逐层扩散
50+
51+
## 涂鸦的底层原理
52+
53+
涂鸦是第一个出现的不可用有向边连接的Entity。曾经的实体都是ConnectableEntity。
54+
55+
笔迹拥有Entity的特性,例如:可以被选中、移动、删除、复制、粘贴、放在Section框中可以被Section的拖动而连带移动。
56+
57+
<Callout>
58+
问题:为什么涂鸦对象需要uuid?
59+
60+
答:因为涂鸦可以被放入Section中带动移动,所以为了记录这种引用关系,涂鸦必须要有uuid
61+
</Callout>
62+
63+
涂鸦笔画本质上是不同粗细的折线段。(这里对笔画的定义是:绘制过程中鼠标从开始按下到松开的一笔画)
64+
65+
笔画的字符串结构如下:
66+
67+
```json
68+
"x1,y1,w1~x2,y2,w2~x3,y3,w3 ..."
69+
```
70+
71+
波浪号作为分隔符
72+
73+
其中为了保证字符串不会太长,每个坐标都保留两位小数,第三个参数w是笔画的粗细,取整处理
74+
75+
<Callout>
76+
问题:为什么涂鸦对象的字符串化后,每一小段都要有一个粗细参数 `w`
77+
78+
答:最开始打算实现笔锋的效果,进而每一小段粗细都可以不同,但后来实测发现这样会极大降低性能,频繁改变粗细的渲染会导致卡顿。
79+
80+
因此,为了保证性能,涂鸦的粗细按照第一小段折线的`w`参数来统一处理了
81+
</Callout>
82+
83+
<Callout>
84+
问题:既然已经不打算做笔锋效果了,为什么还要保留笔画粗细参数?
85+
86+
答:不排除以后还会出Godot版本,保留这个字段能和未来的Godot版本保持一致性。
87+
</Callout>
88+

0 commit comments

Comments
 (0)