1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import QtQuick
import QtQuick.Shapes
ControlledShape {
delegate: [
// A triangle
PathPolyline {
id: ppl
path: [ Qt.point(150.0, 100.0),
Qt.point(1250.0, 150.0),
Qt.point(100.0, 1000.0),
Qt.point(150, 100)
]
},
// A very narrow shape with one convex and one concave curve
PathMove { x: 600; y: 1200},
PathQuad { x: 800; y: 1200; controlX: 700; controlY: 600 },
PathQuad { x: 600; y: 1200; controlX: 700; controlY: 700 },
// A more complex path with editable points
PathMove { x: p1.cx; y: p1.cy },
PathQuad { x: p2.cx; y: p2.cy; controlX: c1.cx; controlY: c1.cy },
PathQuad { x: p3.cx; y: p3.cy; controlX: c2.cx; controlY: c2.cy },
PathQuad { x: p4.cx; y: p4.cy; controlX: c3.cx; controlY: c3.cy },
PathLine { x: p5.cx; y: p5.cy },
PathQuad { x: p6.cx; y: p6.cy; controlX: c5.cx; controlY: c5.cy },
PathQuad { x: p7.cx; y: p7.cy; controlX: c6.cx; controlY: c6.cy },
PathQuad { x: p8.cx; y: p8.cy; controlX: c7.cx; controlY: c7.cy }
]
// Control points for the editable part:
// Curve p1-c1-p2, Curve p2-c2-p3, Curve p3-c3-p4
// Line p4-p5, Curve p5-c5-p6, Curve p6-c6-p7, Curve p7-c7-p8
ControlPoint {
id: p1
cx: 100
cy: 1000
}
ControlPoint {
id: c1
color: "blue"
cx: 200
cy: 1500
}
ControlPoint {
id: p2
cx: 700
cy: 1500
}
ControlPoint {
id: c2
color: "blue"
cx: 1200
cy: 1500
}
ControlPoint {
id: p3
cx: 1200
cy: 1000
}
ControlPoint {
id: c3
color: "blue"
cx: 1100
cy: 700
}
ControlPoint {
id: p4
cx: 800
cy: 600
}
ControlPoint {
id: p5
cx: 800
cy: 800
}
ControlPoint {
id: c5
color: "blue"
cx: 1000
cy: 600
}
ControlPoint {
id: p6
cx: 1000
cy: 1000
}
ControlPoint {
id: c6
color: "blue"
cx: 1000
cy: 1300
}
ControlPoint {
id: p7
cx: 700
cy: 1300
}
ControlPoint {
id: c7
color: "blue"
cx: 400
cy: 1300
}
ControlPoint {
id: p8
cx: 400
cy: 1000
}
}
|