zh-CN

PR #5323 New curve element that supersedes path

Published At: 2024-12-17 Tags: pr

新添加了 curve 元素替代之前的 path.

新的 curve 元素支持一条 curve 中包含多段不同的 subcurve, 并且可以方便地调整闭合方式, 填充方式等.

typ
1
#set curve(fill: yellow)
2
#curve(
3
fill-rule: "even-odd",
4
stroke: black,
5
curve.move((10mm, 10mm)),
6
curve.line((20mm, 10mm)),
7
curve.line((20mm, 20mm)),
8
curve.close(),
9
curve.move((0mm, 5mm)),
10
curve.line((25mm, 5mm)),
11
curve.line((25mm, 30mm)),
12
curve.close(),
13
)
14
15
#curve(
16
stroke: black,
17
curve.move((10mm, 10mm)),
18
curve.cubic((5mm, 20mm), (15mm, 20mm), (20mm, 0mm), relative: true),
19
// 第一个控制点 auto 相当于前一条曲线的最后一个控制点
20
curve.cubic(auto, (15mm, -10mm), (20mm, 0mm), relative: true),
21
curve.close(mode: "straight")
22
)
23
24
#curve(
25
// 默认起点, 也可以手动指定
26
// curve.move(start: (0mm, 0mm)),
27
curve.quad((10mm, 0mm), (10mm, 10mm)),
28
curve.quad(auto, (10mm, 10mm), relative: true),
29
curve.close()
30
)