1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the test suite of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL-EXCEPT$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 as published by the Free Software
20** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
21** included in the packaging of this file. Please review the following
22** information to ensure the GNU General Public License requirements will
23** be met: https://www.gnu.org/licenses/gpl-3.0.html.
24**
25** $QT_END_LICENSE$
26**
27****************************************************************************/
28#include "paths.h"
29
30QPainterPath Paths::rect()
31{
32 QPainterPath path;
33
34 path.moveTo(x: 45.885571, y: 62.857143);
35 path.lineTo(x: 154.11442, y: 62.857143);
36 path.cubicTo(ctrlPt1x: 162.1236, ctrlPt1y: 62.857143,
37 ctrlPt2x: 168.57142, ctrlPt2y: 70.260744,
38 endPtx: 168.57142, endPty: 79.457144);
39 path.lineTo(x: 168.57142, y: 123.4);
40 path.cubicTo(ctrlPt1x: 168.57142, ctrlPt1y: 132.5964,
41 ctrlPt2x: 162.1236, ctrlPt2y: 140,
42 endPtx: 154.11442, endPty: 140);
43 path.lineTo(x: 45.885571, y: 140);
44 path.cubicTo(ctrlPt1x: 37.876394, ctrlPt1y: 140,
45 ctrlPt2x: 31.428572, ctrlPt2y: 132.5964,
46 endPtx: 31.428572, endPty: 123.4);
47 path.lineTo(x: 31.428572, y: 79.457144);
48 path.cubicTo(ctrlPt1x: 31.428572,ctrlPt1y: 70.260744,
49 ctrlPt2x: 37.876394,ctrlPt2y: 62.857143,
50 endPtx: 45.885571,endPty: 62.857143);
51 path.closeSubpath();
52 return path;
53}
54
55QPainterPath Paths::rect6()
56{
57 QPainterPath path;
58
59 path.moveTo(x: 45.885571, y: 62.857143);
60 path.lineTo(x: 154.11442, y: 62.857143);
61 path.cubicTo(ctrlPt1x: 162.1236, ctrlPt1y: 62.857143,
62 ctrlPt2x: 168.57142, ctrlPt2y: 70.260744,
63 endPtx: 168.57142, endPty: 79.457144);
64 path.lineTo(x: 168.57142, y: 123.4);
65 path.cubicTo(ctrlPt1x: 168.57142, ctrlPt1y: 132.5964,
66 ctrlPt2x: 162.1236, ctrlPt2y: 140,
67 endPtx: 154.11442, endPty: 140);
68 path.lineTo(x: 45.885571, y: 140);
69 path.closeSubpath();
70 return path;
71}
72
73
74QPainterPath Paths::heart()
75{
76 QPainterPath path;
77 path.moveTo(x: 263.41570, y: 235.14588);
78 path.cubicTo(ctrlPt1x: 197.17570,ctrlPt1y: 235.14588,
79 ctrlPt2x: 143.41575,ctrlPt2y: 288.90587,
80 endPtx: 143.41575,endPty: 355.14588);
81 path.cubicTo(ctrlPt1x: 143.41575, ctrlPt1y: 489.90139,
82 ctrlPt2x: 279.34890, ctrlPt2y: 525.23318,
83 endPtx: 371.97820, endPty: 658.45392);
84 path.cubicTo(ctrlPt1x: 459.55244,ctrlPt1y: 526.05056,
85 ctrlPt2x: 600.54070,ctrlPt2y: 485.59932,
86 endPtx: 600.54070,endPty: 355.14588);
87 path.cubicTo(ctrlPt1x: 600.54070,ctrlPt1y: 288.90588, ctrlPt2x: 546.78080,ctrlPt2y: 235.14587, endPtx: 480.54070,endPty: 235.14588);
88 path.cubicTo(ctrlPt1x: 432.49280,ctrlPt1y: 235.14588, ctrlPt2x: 391.13910,ctrlPt2y: 263.51631, endPtx: 371.97820,endPty: 304.33338);
89 path.cubicTo(ctrlPt1x: 352.81740,ctrlPt1y: 263.51630, ctrlPt2x: 311.46370,ctrlPt2y: 235.14587, endPtx: 263.41570,endPty: 235.14588);
90 path.closeSubpath();
91 return path;
92}
93
94
95QPainterPath Paths::body()
96{
97 QPainterPath path;
98 path.moveTo(x: 62.500000,y: 15.531250);
99 path.cubicTo(ctrlPt1x: 48.633197,ctrlPt1y: 15.531250, ctrlPt2x: 37.374999,ctrlPt2y: 26.789445, endPtx: 37.375000,endPty: 40.656250);
100 path.cubicTo(ctrlPt1x: 37.375000,ctrlPt1y: 54.523053, ctrlPt2x: 48.633195,ctrlPt2y: 65.781252, endPtx: 62.500000,endPty: 65.781250);
101 path.cubicTo(ctrlPt1x: 76.366803,ctrlPt1y: 65.781250, ctrlPt2x: 87.624998,ctrlPt2y: 54.523052, endPtx: 87.625000,endPty: 40.656250);
102 path.cubicTo(ctrlPt1x: 87.625000,ctrlPt1y: 26.789447, ctrlPt2x: 76.366802,ctrlPt2y: 15.531250, endPtx: 62.500000,endPty: 15.531250);
103 path.closeSubpath();
104 path.moveTo(x: 54.437500,y: 65.812500);
105 path.cubicTo(ctrlPt1x: 35.184750,ctrlPt1y: 65.812499, ctrlPt2x: 19.687500,ctrlPt2y: 81.341002, endPtx: 19.687500,endPty: 100.59375);
106 path.lineTo(x: 19.687500,y: 155.68750);
107 path.cubicTo(ctrlPt1x: 19.687501,ctrlPt1y: 167.50351, ctrlPt2x: 25.539122,ctrlPt2y: 177.88308, endPtx: 34.500000,endPty: 184.15625);
108 path.lineTo(x: 34.500000,y: 254.03125);
109 path.cubicTo(ctrlPt1x: 34.499999,ctrlPt1y: 257.03306, ctrlPt2x: 46.990615,ctrlPt2y: 259.43748, endPtx: 62.500000,endPty: 259.43750);
110 path.cubicTo(ctrlPt1x: 78.009381,ctrlPt1y: 259.43751, ctrlPt2x: 90.468750,ctrlPt2y: 257.03307, endPtx: 90.468750,endPty: 254.03125);
111 path.lineTo(x: 90.468750,y: 184.15625);
112 path.cubicTo(ctrlPt1x: 99.429633,ctrlPt1y: 177.88307, ctrlPt2x: 105.28125,ctrlPt2y: 167.50352, endPtx: 105.28125,endPty: 155.68750);
113 path.lineTo(x: 105.28125,y: 100.59375);
114 path.cubicTo(ctrlPt1x: 105.28125,ctrlPt1y: 81.341000, ctrlPt2x: 89.784000,ctrlPt2y: 65.812500, endPtx: 70.531250,endPty: 65.812500);
115 path.lineTo(x: 54.437500,y: 65.812500);
116 path.closeSubpath();
117
118 return path;
119}
120
121
122QPainterPath Paths::mailbox()
123{
124 QPainterPath path;
125 path.moveTo(x: 355.22951,y: 136.82424);
126 path.lineTo(x: 332.03629,y: 112.56585);
127 path.lineTo(x: 325.71086,y: 57.501867);
128 path.cubicTo(ctrlPt1x: 325.71086,ctrlPt1y: 57.501867, ctrlPt2x: 410.12308,ctrlPt2y: 19.428758, endPtx: 427.45202,endPty: 29.094560);
129 path.cubicTo(ctrlPt1x: 444.78096,ctrlPt1y: 38.760366, ctrlPt2x: 443.62570,ctrlPt2y: 54.289660, endPtx: 443.62570,endPty: 54.289660);
130 path.lineTo(x: 443.62570,y: 100.11509);
131 path.lineTo(x: 355.22951,y: 136.82424);
132 path.closeSubpath();
133
134 return path;
135}
136
137
138QPainterPath Paths::deer()
139{
140 QPainterPath path;
141
142 path.moveTo(x: 39.88,y: 31.658);
143 path.cubicTo(ctrlPt1x: 35.632,ctrlPt1y: 31.658, ctrlPt2x: 31.398,ctrlPt2y: 31.004, endPtx: 27.871,endPty: 32.82);
144 path.cubicTo(ctrlPt1x: 25.015,ctrlPt1y: 34.29, ctrlPt2x: 19.608,ctrlPt2y: 34.158, endPtx: 16.297,endPty: 34.158);
145 path.cubicTo(ctrlPt1x: 14.722,ctrlPt1y: 34.158, ctrlPt2x: 17.755,ctrlPt2y: 37.718, endPtx: 17.709,endPty: 38.922);
146 path.cubicTo(ctrlPt1x: 17.578,ctrlPt1y: 42.396, ctrlPt2x: 24.612,ctrlPt2y: 43.15, endPtx: 26.755,endPty: 44.058);
147 path.cubicTo(ctrlPt1x: 30.062,ctrlPt1y: 45.46, ctrlPt2x: 28.682,ctrlPt2y: 47.701, endPtx: 28.963,endPty: 50.574);
148 path.cubicTo(ctrlPt1x: 29.715,ctrlPt1y: 58.243, ctrlPt2x: 26.887,ctrlPt2y: 63.745, endPtx: 24.182,endPty: 70.589);
149 path.cubicTo(ctrlPt1x: 23.365,ctrlPt1y: 72.657, ctrlPt2x: 21.772,ctrlPt2y: 75.56, endPtx: 21.972,endPty: 77.866);
150 path.cubicTo(ctrlPt1x: 22.333,ctrlPt1y: 82.029, ctrlPt2x: 15.803,ctrlPt2y: 77.207, endPtx: 13.894,endPty: 76.535);
151 path.cubicTo(ctrlPt1x: 10.977,ctrlPt1y: 75.508, ctrlPt2x: 5.507,ctrlPt2y: 74.071, endPtx: 2.424,endPty: 75.331);
152 path.cubicTo(ctrlPt1x: -1.532,ctrlPt1y: 76.947, ctrlPt2x: 0.076,ctrlPt2y: 80.491, endPtx: 2.169,endPty: 82.806);
153 path.cubicTo(ctrlPt1x: 6.17,ctrlPt1y: 87.234, ctrlPt2x: 2.703,ctrlPt2y: 90.713, endPtx: 3.895,endPty: 95.363);
154 path.cubicTo(ctrlPt1x: 4.321,ctrlPt1y: 97.026, ctrlPt2x: 11.682,ctrlPt2y: 104.683, endPtx: 12.858,endPty: 103.668);
155 path.cubicTo(ctrlPt1x: 16.706,ctrlPt1y: 100.347, ctrlPt2x: 11.464,ctrlPt2y: 98.692, endPtx: 10.105,endPty: 96.164);
156 path.cubicTo(ctrlPt1x: 9.487,ctrlPt1y: 95.015, ctrlPt2x: 8.616,ctrlPt2y: 83.742, endPtx: 8.866,endPty: 83.759);
157 path.cubicTo(ctrlPt1x: 10.018,ctrlPt1y: 83.837, ctrlPt2x: 12.591,ctrlPt2y: 85.867, endPtx: 13.671,endPty: 86.392);
158 path.cubicTo(ctrlPt1x: 16.889,ctrlPt1y: 87.954, ctrlPt2x: 20.066,ctrlPt2y: 89.63, endPtx: 22.963,endPty: 91.741);
159 path.cubicTo(ctrlPt1x: 29.156,ctrlPt1y: 94.47, ctrlPt2x: 35.543,ctrlPt2y: 96.965, endPtx: 42.102,endPty: 98.676);
160 path.cubicTo(ctrlPt1x: 51.085,ctrlPt1y: 101.02, ctrlPt2x: 59.407,ctrlPt2y: 102.003, endPtx: 68.009,endPty: 106.005);
161 path.cubicTo(ctrlPt1x: 72.92,ctrlPt1y: 108.289, ctrlPt2x: 72.05,ctrlPt2y: 113.282, endPtx: 75.744,endPty: 117.004);
162 path.cubicTo(ctrlPt1x: 79.422,ctrlPt1y: 120.709, ctrlPt2x: 84.733,ctrlPt2y: 123.053, endPtx: 88.978,endPty: 126.053);
163 path.cubicTo(ctrlPt1x: 92.402,ctrlPt1y: 128.473, ctrlPt2x: 95.422,ctrlPt2y: 132.308, endPtx: 97.334,endPty: 135.998);
164 path.cubicTo(ctrlPt1x: 99.551,ctrlPt1y: 140.279, ctrlPt2x: 99.071,ctrlPt2y: 146.004, endPtx: 99.838,endPty: 150.674);
165 path.cubicTo(ctrlPt1x: 100.369,ctrlPt1y: 153.91, ctrlPt2x: 104.378,ctrlPt2y: 156.321, endPtx: 106.302,endPty: 158.859);
166 path.cubicTo(ctrlPt1x: 110.471,ctrlPt1y: 164.355, ctrlPt2x: 109.86,ctrlPt2y: 155.112, endPtx: 108.163,endPty: 154.412);
167 path.cubicTo(ctrlPt1x: 104.97,ctrlPt1y: 153.094, ctrlPt2x: 103.991,ctrlPt2y: 146.625, endPtx: 103.812,endPty: 143.439);
168 path.cubicTo(ctrlPt1x: 103.525,ctrlPt1y: 138.336, ctrlPt2x: 105.568,ctrlPt2y: 134.331, endPtx: 101.918,endPty: 130.346);
169 path.cubicTo(ctrlPt1x: 95.104,ctrlPt1y: 122.907, ctrlPt2x: 89.488,ctrlPt2y: 114.182, endPtx: 94.711,endPty: 103.742);
170 path.cubicTo(ctrlPt1x: 96.889,ctrlPt1y: 99.388, ctrlPt2x: 91.191,ctrlPt2y: 95.497, endPtx: 96.94,endPty: 94.368);
171 path.cubicTo(ctrlPt1x: 99.551,ctrlPt1y: 93.856, ctrlPt2x: 102.49,ctrlPt2y: 94.367, endPtx: 104.326,endPty: 92.034);
172 path.cubicTo(ctrlPt1x: 106.639,ctrlPt1y: 89.095, ctrlPt2x: 105.063,ctrlPt2y: 85.343, endPtx: 102.943,endPty: 82.798);
173 path.cubicTo(ctrlPt1x: 102.686,ctrlPt1y: 82.417, ctrlPt2x: 102.359,ctrlPt2y: 82.121, endPtx: 101.962,endPty: 81.909);
174 path.cubicTo(ctrlPt1x: 102.331,ctrlPt1y: 81.909, ctrlPt2x: 101.923,ctrlPt2y: 86.98, endPtx: 100.981,endPty: 87.628);
175 path.cubicTo(ctrlPt1x: 98.868,ctrlPt1y: 89.082, ctrlPt2x: 95.569,ctrlPt2y: 91.586, endPtx: 92.88,endPty: 91.672);
176 path.cubicTo(ctrlPt1x: 90.569,ctrlPt1y: 91.745, ctrlPt2x: 86.738,ctrlPt2y: 89.184, endPtx: 85.212,endPty: 87.658);
177 path.cubicTo(ctrlPt1x: 84.092,ctrlPt1y: 86.538, ctrlPt2x: 80.176,ctrlPt2y: 86.157, endPtx: 78.598,endPty: 85.83);
178 path.cubicTo(ctrlPt1x: 74.737,ctrlPt1y: 85.031, ctrlPt2x: 71.741,ctrlPt2y: 84.326, endPtx: 68.012,endPty: 82.806);
179 path.cubicTo(ctrlPt1x: 63.318,ctrlPt1y: 80.893, ctrlPt2x: 58.687,ctrlPt2y: 78.672, endPtx: 54.555,endPty: 75.71);
180 path.cubicTo(ctrlPt1x: 44.573,ctrlPt1y: 68.555, ctrlPt2x: 42.755,ctrlPt2y: 56.146, endPtx: 44.022,endPty: 44.495);
181 path.cubicTo(ctrlPt1x: 44.295,ctrlPt1y: 41.987, ctrlPt2x: 43.169,ctrlPt2y: 38.057, endPtx: 44.617,endPty: 35.915);
182 path.cubicTo(ctrlPt1x: 44.961,ctrlPt1y: 35.406, ctrlPt2x: 46.52,ctrlPt2y: 35.553, endPtx: 47.119,endPty: 35.024);
183 path.cubicTo(ctrlPt1x: 47.882,ctrlPt1y: 34.35, ctrlPt2x: 49.574,ctrlPt2y: 31.822, endPtx: 49.878,endPty: 30.792);
184 path.cubicTo(ctrlPt1x: 51.126,ctrlPt1y: 26.569, ctrlPt2x: 44.36,ctrlPt2y: 32.002, endPtx: 45.336,endPty: 31.938);
185 path.cubicTo(ctrlPt1x: 43.861,ctrlPt1y: 32.036, ctrlPt2x: 47.011,ctrlPt2y: 22.934, endPtx: 47.191,endPty: 22.574);
186 path.cubicTo(ctrlPt1x: 47.555,ctrlPt1y: 21.846, ctrlPt2x: 52.489,ctrlPt2y: 13.123, endPtx: 49.511,endPty: 13.222);
187 path.cubicTo(ctrlPt1x: 47.643,ctrlPt1y: 13.284, ctrlPt2x: 48.563,ctrlPt2y: 18.667, endPtx: 46.354,endPty: 18.227);
188 path.cubicTo(ctrlPt1x: 43.964,ctrlPt1y: 17.751, ctrlPt2x: 40.522,ctrlPt2y: 11.396, endPtx: 41.566,endPty: 9.011);
189 path.cubicTo(ctrlPt1x: 43.4,ctrlPt1y: 4.819, ctrlPt2x: 39.743,ctrlPt2y: 3.905, endPtx: 39.214,endPty: 7.564);
190 path.cubicTo(ctrlPt1x: 39.112,ctrlPt1y: 8.269, ctrlPt2x: 40.893,ctrlPt2y: 13.438, endPtx: 38.159,endPty: 12.665);
191 path.cubicTo(ctrlPt1x: 35.335,ctrlPt1y: 11.866, ctrlPt2x: 35.748,ctrlPt2y: -0.125, endPtx: 34.38,endPty: -8.0352391e-15);
192 path.cubicTo(ctrlPt1x: 31.991,ctrlPt1y: 0.219, ctrlPt2x: 34.074,ctrlPt2y: 10.836, endPtx: 33.361,endPty: 12.176);
193 path.cubicTo(ctrlPt1x: 33.144,ctrlPt1y: 12.584, ctrlPt2x: 29.68,ctrlPt2y: 8.66, endPtx: 29.459,endPty: 7.718);
194 path.cubicTo(ctrlPt1x: 28.48,ctrlPt1y: 3.558, ctrlPt2x: 28.031,ctrlPt2y: 5.106, endPtx: 26.87,endPty: 7.752);
195 path.cubicTo(ctrlPt1x: 25.333,ctrlPt1y: 11.254, ctrlPt2x: 37.159,ctrlPt2y: 17.423, endPtx: 39.292,endPty: 18.663);
196 path.cubicTo(ctrlPt1x: 40.993,ctrlPt1y: 19.651, ctrlPt2x: 42.39,ctrlPt2y: 20.504, endPtx: 42.973,endPty: 22.48);
197 path.cubicTo(ctrlPt1x: 43.482,ctrlPt1y: 24.205, ctrlPt2x: 44.098,ctrlPt2y: 26.568, endPtx: 42.926,endPty: 28.191);
198 path.cubicTo(ctrlPt1x: 42.092,ctrlPt1y: 29.346, ctrlPt2x: 39.88,ctrlPt2y: 29.982, endPtx: 39.88,endPty: 31.658);
199 return path;
200}
201
202
203QPainterPath Paths::fire()
204{
205 QPainterPath path;
206
207 path.moveTo(x: 362.83759,y: 116.70426);
208 path.cubicTo(ctrlPt1x: 342.56574,ctrlPt1y: 131.59686, ctrlPt2x: 300.71403,ctrlPt2y: 161.23127, endPtx: 311.38454,endPty: 218.12635);
209 path.cubicTo(ctrlPt1x: 322.05506,ctrlPt1y: 275.02144, ctrlPt2x: 358.53432,ctrlPt2y: 301.66527, endPtx: 328.90674,endPty: 328.73285);
210 path.cubicTo(ctrlPt1x: 299.27916,ctrlPt1y: 355.80044, ctrlPt2x: 251.48877,ctrlPt2y: 339.59410, endPtx: 255.46042,endPty: 288.61972);
211 path.cubicTo(ctrlPt1x: 258.22374,ctrlPt1y: 253.15368, ctrlPt2x: 278.34141,ctrlPt2y: 205.10942, endPtx: 278.34141,endPty: 205.10942);
212 path.cubicTo(ctrlPt1x: 278.34141,ctrlPt1y: 205.10942, ctrlPt2x: 234.02455,ctrlPt2y: 233.13427, endPtx: 219.68939,endPty: 254.01270);
213 path.cubicTo(ctrlPt1x: 205.35424,ctrlPt1y: 274.89113, ctrlPt2x: 189.71452,ctrlPt2y: 330.07842, endPtx: 208.58356,endPty: 373.33974);
214 path.cubicTo(ctrlPt1x: 227.45261,ctrlPt1y: 416.60109, ctrlPt2x: 316.46286,ctrlPt2y: 456.33444, endPtx: 351.12048,endPty: 514.32780);
215 path.cubicTo(ctrlPt1x: 374.10258,ctrlPt1y: 552.78425, ctrlPt2x: 355.05815,ctrlPt2y: 613.59741, endPtx: 310.80422,endPty: 636.59310);
216 path.cubicTo(ctrlPt1x: 256.63287,ctrlPt1y: 664.74219, ctrlPt2x: 299.16588,ctrlPt2y: 580.49238, endPtx: 285.22551,endPty: 523.86186);
217 path.cubicTo(ctrlPt1x: 273.46790,ctrlPt1y: 476.09839, ctrlPt2x: 265.70022,ctrlPt2y: 445.12001, endPtx: 188.03132,endPty: 432.51681);
218 path.cubicTo(ctrlPt1x: 233.72591,ctrlPt1y: 465.34901, ctrlPt2x: 242.16068,ctrlPt2y: 495.04075, endPtx: 241.45928,endPty: 524.11772);
219 path.cubicTo(ctrlPt1x: 240.78648,ctrlPt1y: 552.00862, ctrlPt2x: 214.39595,ctrlPt2y: 634.57293, endPtx: 177.39967,endPty: 596.79021);
220 path.cubicTo(ctrlPt1x: 140.72642,ctrlPt1y: 559.33737, ctrlPt2x: 214.27071,ctrlPt2y: 512.68654, endPtx: 170.92945,endPty: 471.62081);
221 path.cubicTo(ctrlPt1x: 174.73284,ctrlPt1y: 501.40284, ctrlPt2x: 145.30515,ctrlPt2y: 514.98828, endPtx: 131.55318,endPty: 544.54392);
222 path.cubicTo(ctrlPt1x: 118.22673,ctrlPt1y: 573.18509, ctrlPt2x: 123.55251,ctrlPt2y: 610.30651, endPtx: 139.07596,endPty: 645.41379);
223 path.cubicTo(ctrlPt1x: 181.14122,ctrlPt1y: 740.38745, ctrlPt2x: 266.95518,ctrlPt2y: 726.23964, endPtx: 208.75321,endPty: 797.88229);
224 path.cubicTo(ctrlPt1x: 164.01134,ctrlPt1y: 852.95649, ctrlPt2x: 162.90150,ctrlPt2y: 907.45084, endPtx: 205.60384,endPty: 970.81121);
225 path.cubicTo(ctrlPt1x: 240.06795,ctrlPt1y: 1021.9479, ctrlPt2x: 371.11663,ctrlPt2y: 1060.7652, endPtx: 432.20697,endPty: 960.93460);
226 path.cubicTo(ctrlPt1x: 501.87852,ctrlPt1y: 820.00694, ctrlPt2x: 357.14883,ctrlPt2y: 780.33174, endPtx: 386.29974,endPty: 732.84721);
227 path.cubicTo(ctrlPt1x: 405.70205,ctrlPt1y: 701.24238, ctrlPt2x: 472.56601,ctrlPt2y: 668.86516, endPtx: 501.09199,endPty: 644.21233);
228 path.cubicTo(ctrlPt1x: 564.18184,ctrlPt1y: 587.55421, ctrlPt2x: 561.84437,ctrlPt2y: 497.32621, endPtx: 522.74229,endPty: 471.25817);
229 path.cubicTo(ctrlPt1x: 530.19030,ctrlPt1y: 501.05022, ctrlPt2x: 514.99952,ctrlPt2y: 542.79339, endPtx: 483.67099,endPty: 551.29691);
230 path.cubicTo(ctrlPt1x: 423.41173,ctrlPt1y: 567.65308, ctrlPt2x: 458.18351,ctrlPt2y: 411.79373, endPtx: 564.02075,endPty: 393.61925);
231 path.cubicTo(ctrlPt1x: 530.91135,ctrlPt1y: 366.44998, ctrlPt2x: 501.31413,ctrlPt2y: 367.33484, endPtx: 454.91711,endPty: 379.11707);
232 path.cubicTo(ctrlPt1x: 397.61736,ctrlPt1y: 393.57908, ctrlPt2x: 407.64322,ctrlPt2y: 315.40944, endPtx: 494.34643,endPty: 262.67861);
233 path.cubicTo(ctrlPt1x: 549.19500,ctrlPt1y: 229.32101, ctrlPt2x: 499.11573,ctrlPt2y: 147.63302, endPtx: 491.66772,endPty: 136.46100);
234 path.cubicTo(ctrlPt1x: 485.38713,ctrlPt1y: 213.93294, ctrlPt2x: 435.43515,ctrlPt2y: 233.35601, endPtx: 409.98053,endPty: 235.72292);
235 path.cubicTo(ctrlPt1x: 375.27049,ctrlPt1y: 238.95043, ctrlPt2x: 377.84554,ctrlPt2y: 214.33812, endPtx: 396.75003,endPty: 178.92950);
236 path.cubicTo(ctrlPt1x: 416.21172,ctrlPt1y: 142.47722, ctrlPt2x: 448.15395,ctrlPt2y: 89.429942, endPtx: 376.51366,endPty: 44.060977);
237 path.cubicTo(ctrlPt1x: 388.13560,ctrlPt1y: 71.270572, ctrlPt2x: 395.93673,ctrlPt2y: 94.012962, endPtx: 362.83759,endPty: 116.70426);
238 path.closeSubpath();
239 return path;
240}
241
242
243QPainterPath Paths::lips()
244{
245 QPainterPath path;
246
247 path.moveTo(x: 177.02257,y: 176.65905);
248 path.cubicTo(ctrlPt1x: 154.11895,ctrlPt1y: 176.65905, ctrlPt2x: 136.56711,ctrlPt2y: 174.32266, endPtx: 110.41800,endPty: 155.61729);
249 path.cubicTo(ctrlPt1x: 83.894106,ctrlPt1y: 136.64382, ctrlPt2x: 70.456540,ctrlPt2y: 123.78263, endPtx: 44.264608,endPty: 101.00195);
250 path.cubicTo(ctrlPt1x: 36.985036,ctrlPt1y: 94.670475, ctrlPt2x: 11.607987,ctrlPt2y: 76.421189, endPtx: 0.62503194,endPty: 72.562763);
251 path.cubicTo(ctrlPt1x: 22.778258,ctrlPt1y: 60.937514, ctrlPt2x: 46.738237,ctrlPt2y: 46.430325, endPtx: 55.325084,endPty: 40.325054);
252 path.cubicTo(ctrlPt1x: 79.128700,ctrlPt1y: 23.400628, ctrlPt2x: 99.203004,ctrlPt2y: 0.53294656, endPtx: 116.15033,endPty: 0.61582047);
253 path.cubicTo(ctrlPt1x: 129.59137,ctrlPt1y: 0.68308215, ctrlPt2x: 144.54744,ctrlPt2y: 18.524567, endPtx: 177.02257,endPty: 18.524567);
254 path.cubicTo(ctrlPt1x: 210.04060,ctrlPt1y: 18.524567, ctrlPt2x: 224.45379,ctrlPt2y: 0.68308215, endPtx: 237.89483,endPty: 0.61582047);
255 path.cubicTo(ctrlPt1x: 254.84216,ctrlPt1y: 0.53294656, ctrlPt2x: 274.91646,ctrlPt2y: 23.400628, endPtx: 298.72008,endPty: 40.325054);
256 path.cubicTo(ctrlPt1x: 307.30692,ctrlPt1y: 46.430325, ctrlPt2x: 331.26690,ctrlPt2y: 60.937514, endPtx: 353.42013,endPty: 72.562763);
257 path.cubicTo(ctrlPt1x: 342.43717,ctrlPt1y: 76.421189, ctrlPt2x: 317.06013,ctrlPt2y: 94.670475, endPtx: 309.78055,endPty: 101.00195);
258 path.cubicTo(ctrlPt1x: 283.58862,ctrlPt1y: 123.78263, ctrlPt2x: 270.15105,ctrlPt2y: 136.64382, endPtx: 243.62716,endPty: 155.61729);
259 path.cubicTo(ctrlPt1x: 217.47805,ctrlPt1y: 174.32266, ctrlPt2x: 199.38332,ctrlPt2y: 176.65905, endPtx: 177.02257,endPty: 176.65905);
260 path.closeSubpath();
261
262 return path;
263}
264
265QPainterPath Paths::bezier1()
266{
267 QPainterPath path;
268 path.moveTo(x: 50, y: 50);
269 path.cubicTo(ctrlPt1x: 100, ctrlPt1y: 100,
270 ctrlPt2x: 520, ctrlPt2y: 90,
271 endPtx: 400,endPty: 400);
272 return path;
273}
274
275QPainterPath Paths::bezier2()
276{
277 QPainterPath path;
278 path.moveTo(x: 200,y: 200);
279 path.cubicTo(ctrlPt1x: 200,ctrlPt1y: 125, ctrlPt2x: 500,ctrlPt2y: 100, endPtx: 500,endPty: 500);
280
281 return path;
282}
283
284QPainterPath Paths::random1()
285{
286 QPainterPath path;
287
288 path.moveTo(x: 65.714286,y: 91.428571);
289 path.lineTo(x: 217.14286, y: 102.85714);
290 path.cubicTo(ctrlPt1x: 219.04762, ctrlPt1y: 106.66666,
291 ctrlPt2x: 220.95238, ctrlPt2y: 110.47619,
292 endPtx: 222.85714,endPty: 114.28571);
293 path.cubicTo(ctrlPt1x: 231.2679, ctrlPt1y: 131.10723,
294 ctrlPt2x: 214.72525, ctrlPt2y: 138.24185,
295 endPtx: 211.42857,endPty: 151.42857);
296 path.cubicTo(ctrlPt1x: 207.25902, ctrlPt1y: 168.10676,
297 ctrlPt2x: 213.24674, ctrlPt2y: 175.8441,
298 endPtx: 217.14286,endPty: 191.42857);
299 path.cubicTo(ctrlPt1x: 221.088, ctrlPt1y: 207.20915,
300 ctrlPt2x: 201.21538,ctrlPt2y: 205.71429,
301 endPtx: 188.57143,endPty: 205.71429);
302 path.cubicTo(ctrlPt1x: 170.18303, ctrlPt1y: 205.71429,
303 ctrlPt2x: 161.42918, ctrlPt2y: 197.50045,
304 endPtx: 145.71429,endPty: 185.71429);
305 path.cubicTo(ctrlPt1x: 113.93441, ctrlPt1y: 161.87938,
306 ctrlPt2x: 132.73699, ctrlPt2y: 182.37652,
307 endPtx: 137.14286, endPty: 200);
308 path.cubicTo(ctrlPt1x: 140.37884, ctrlPt1y: 212.94392,
309 ctrlPt2x: 128.50252, ctrlPt2y: 217.16009,
310 endPtx: 117.14286, endPty: 220);
311 path.cubicTo(ctrlPt1x: 98.323209, ctrlPt1y: 224.70491,
312 ctrlPt2x: 91.206108, ctrlPt2y: 205.41767,
313 endPtx: 82.857143, endPty: 194.28571);
314 path.cubicTo(ctrlPt1x: 77.307286, ctrlPt1y: 186.8859,
315 ctrlPt2x: 84.541768, ctrlPt2y: 158.97578,
316 endPtx: 85.714286, endPty: 154.28571);
317 path.cubicTo(ctrlPt1x: 87.843677, ctrlPt1y: 145.76815,
318 ctrlPt2x: 67.066253, ctrlPt2y: 132.78054,
319 endPtx: 60 , endPty: 125.71429);
320 path.cubicTo(ctrlPt1x: 54.074503, ctrlPt1y: 119.78879,
321 ctrlPt2x: 64.646395, ctrlPt2y: 95.700137,
322 endPtx: 65.714286, endPty: 91.428571);
323 path.closeSubpath();
324
325 return path;
326}
327
328QPainterPath Paths::random2()
329{
330 QPainterPath path;
331
332 path.moveTo(x: 314.28571,y: 160);
333 path.cubicTo(ctrlPt1x: 434.28571,ctrlPt1y: 125.71429,
334 ctrlPt2x: 505.71429,ctrlPt2y: 200,
335 endPtx: 505.71429,endPty: 200);
336 path.lineTo(x: 454.28571, y: 305.71429);
337 path.lineTo(x: 337.14286, y: 302.85714);
338 path.cubicTo(ctrlPt1x: 337.14286, ctrlPt1y: 302.85714,
339 ctrlPt2x: 308.57143, ctrlPt2y: 340,
340 endPtx: 337.14286, endPty: 302.85714);
341 path.cubicTo(ctrlPt1x: 365.71429, ctrlPt1y: 265.71429,
342 ctrlPt2x: 200, ctrlPt2y: 420,
343 endPtx: 300, endPty: 291.42857);
344 path.cubicTo(ctrlPt1x: 400, ctrlPt1y: 162.85714,
345 ctrlPt2x: 254.28571, ctrlPt2y: 240,
346 endPtx: 254.28571, endPty: 240);
347 path.cubicTo(ctrlPt1x: 254.28571,ctrlPt1y: 240,
348 ctrlPt2x: 240,ctrlPt2y: 71.428571,
349 endPtx: 288.57143,endPty: 134.28571);
350 path.cubicTo(ctrlPt1x: 337.14286,ctrlPt1y: 197.14286,
351 ctrlPt2x: 314.28571,ctrlPt2y: 162.85714,
352 endPtx: 314.28571,endPty: 160);
353 path.closeSubpath();
354
355 return path;
356}
357
358QPainterPath Paths::bezier3()
359{
360 QPainterPath path;
361 path.moveTo(x: 295, y: 217);
362 path.cubicTo(ctrlPt1x: 364, ctrlPt1y: 57,
363 ctrlPt2x: 377, ctrlPt2y: 34,
364 endPtx: 456, endPty: 222);
365 return path;
366}
367
368QPainterPath Paths::bezier4()
369{
370 QPainterPath path;
371 path.moveTo(x: 200, y: 125);
372 path.cubicTo(ctrlPt1x: 200, ctrlPt1y: 125,
373 ctrlPt2x: 623, ctrlPt2y: 126,
374 endPtx: 623, endPty: 126);
375 return path;
376}
377
378QPainterPath Paths::heart2()
379{
380 QPainterPath path;
381 path.moveTo(x: 263.41570, y: 235.14588);
382 path.cubicTo(ctrlPt1x: 197.17570,ctrlPt1y: 235.14588,
383 ctrlPt2x: 143.41575,ctrlPt2y: 288.90587,
384 endPtx: 143.41575,endPty: 355.14588);
385 path.cubicTo(ctrlPt1x: 143.41575, ctrlPt1y: 489.90139,
386 ctrlPt2x: 279.34890, ctrlPt2y: 525.23318,
387 endPtx: 371.97820, endPty: 658.45392);
388 return path;
389}
390
391QPainterPath Paths::rect2()
392{
393 QPainterPath path;
394
395 path.addRect(x: 80, y: 80, w: 100, h: 100);
396
397 return path;
398}
399
400
401QPainterPath Paths::rect3()
402{
403 QPainterPath path;
404
405 path.addRect(x: 100, y: 40, w: 100, h: 100);
406
407 return path;
408}
409
410
411QPainterPath Paths::rect4()
412{
413 QPainterPath path;
414
415 path.addRect(x: 100, y: 0, w: 200, h: 200);
416
417 path.addRect(x: 120, y: 20, w: 80, h: 80);
418
419 return path;
420}
421
422QPainterPath Paths::simpleCurve()
423{
424 QPainterPath path;
425 path.moveTo(x: 74, y: 160);
426 path.cubicTo( ctrlPt1x: 74, ctrlPt1y: 160,
427 ctrlPt2x: 274, ctrlPt2y: 406,
428 endPtx: 425, endPty: 166);
429 path.cubicTo(ctrlPt1x: 577, ctrlPt1y: -73,
430 ctrlPt2x: 77, ctrlPt2y: 160,
431 endPtx: 74, endPty: 160);
432 path.closeSubpath();
433
434 return path;
435}
436
437QPainterPath Paths::simpleCurve2()
438{
439 QPainterPath path;
440 path.moveTo(x: 54, y: 140);
441 path.cubicTo( ctrlPt1x: 54, ctrlPt1y: 140,
442 ctrlPt2x: 254, ctrlPt2y: 386,
443 endPtx: 405, endPty: 146);
444 path.cubicTo(ctrlPt1x: 557, ctrlPt1y: -93,
445 ctrlPt2x: 57, ctrlPt2y: 140,
446 endPtx: 54, endPty: 140);
447 path.closeSubpath();
448
449 return path;
450}
451
452QPainterPath Paths::frame1()
453{
454 QPainterPath path;
455 path.moveTo(x: 190.71429, y: 40.933613);
456 path.lineTo(x: 683.57141, y: 40.933613);
457 path.cubicTo(ctrlPt1x: 697.42141, ctrlPt1y: 40.933613,
458 ctrlPt2x: 708.57141, ctrlPt2y: 52.083613,
459 endPtx: 708.57141, endPty: 65.933613);
460 path.lineTo(x: 708.57141, y: 375.93361);
461 path.cubicTo(ctrlPt1x: 708.57141, ctrlPt1y: 389.78361,
462 ctrlPt2x: 697.42141, ctrlPt2y: 400.93361,
463 endPtx: 683.57141, endPty: 400.93361);
464 path.lineTo(x: 190.71429, y: 400.93361);
465 path.cubicTo(ctrlPt1x: 176.86429, ctrlPt1y: 400.93361,
466 ctrlPt2x: 165.71429, ctrlPt2y: 389.78361,
467 endPtx: 165.71429,endPty: 375.93361);
468 path.lineTo(x: 165.71429, y: 65.933613);
469 path.cubicTo(ctrlPt1x: 165.71429,ctrlPt1y: 52.083613,
470 ctrlPt2x: 176.86429,ctrlPt2y: 40.933613,
471 endPtx: 190.71429,endPty: 40.933613);
472 path.closeSubpath();
473
474 return path;
475}
476
477QPainterPath Paths::frame2()
478{
479 QPainterPath path;
480 path.moveTo(x: 55.114286, y: 103.79076);
481 path.lineTo(x: 187.74288, y: 103.79076);
482 path.cubicTo(ctrlPt1x: 192.95048, ctrlPt1y: 103.79076,
483 ctrlPt2x: 197.14288, ctrlPt2y: 107.88102,
484 endPtx: 197.14288, endPty: 112.96176);
485 path.lineTo(x: 197.14288, y: 131.76261);
486 path.cubicTo(ctrlPt1x: 197.14288, ctrlPt1y: 136.84335,
487 ctrlPt2x: 192.95048, ctrlPt2y: 140.93361,
488 endPtx: 187.74288, endPty: 140.93361);
489 path.lineTo(x: 55.114286, y: 140.93361);
490 path.cubicTo(ctrlPt1x: 49.906687, ctrlPt1y: 140.93361,
491 ctrlPt2x: 45.714287, ctrlPt2y: 136.84335,
492 endPtx: 45.714287, endPty: 131.76261);
493 path.lineTo(x: 45.714287, y: 112.96176);
494 path.cubicTo(ctrlPt1x: 45.714287, ctrlPt1y: 107.88102,
495 ctrlPt2x: 49.906687, ctrlPt2y: 103.79076,
496 endPtx: 55.114286, endPty: 103.79076);
497 path.closeSubpath();
498
499 return path;
500}
501
502QPainterPath Paths::frame3()
503{
504 QPainterPath path;
505 path.moveTo(x: 200,y: 80.933609);
506 path.lineTo(x: 682.85715,y: 80.933609);
507 path.lineTo(x: 682.85715,y: 446.6479);
508 path.lineTo(x: 200,y: 446.6479);
509 path.lineTo(x: 200,y: 80.933609);
510 path.closeSubpath();
511 return path;
512}
513
514QPainterPath Paths::frame4()
515{
516 QPainterPath path;
517
518 path.moveTo(x: 88.571434,y: 206.64789);
519 path.lineTo(x: 231.42858,y: 206.64789);
520 path.lineTo(x: 231.42858,y: 246.64789);
521 path.lineTo(x: 88.571434,y: 246.64789);
522 path.lineTo(x: 88.571434,y: 206.64789);
523 path.closeSubpath();
524
525 return path;
526}
527
528QPainterPath Paths::simpleCurve3()
529{
530 QPainterPath path;
531
532 path.moveTo(x: 0, y: 0);
533 path.cubicTo(ctrlPt1x: 400,ctrlPt1y: 0,
534 ctrlPt2x: 0,ctrlPt2y: 400,
535 endPtx: 0,endPty: 0);
536 path.closeSubpath();
537
538 return path;
539}
540
541QPainterPath Paths::rect5()
542{
543 QPainterPath path;
544
545 path.addRect(x: 0, y: 0, w: 200, h: 200);
546
547 return path;
548}
549
550QPainterPath Paths::triangle1()
551{
552 QPainterPath path;
553
554 path.moveTo(x: 0, y: 0);
555 path.lineTo(x: 60, y: 0);
556 path.lineTo(x: 60, y: 60);
557 path.closeSubpath();
558
559 return path;
560}
561
562QPainterPath Paths::triangle2()
563{
564 QPainterPath path;
565
566 path.moveTo(x: 0, y: 120);
567 path.lineTo(x: 60, y: 120);
568 path.lineTo(x: 60, y: 60);
569 path.closeSubpath();
570
571 return path;
572}
573
574QPainterPath Paths::node()
575{
576 QRectF m_rect;
577 m_rect.setWidth(150);
578 m_rect.setHeight(100);
579
580 QPainterPath shape;
581 shape.addRoundedRect(rect: m_rect, xRadius: 25, yRadius: Qt::RelativeSize);
582
583 const int conWidth = 10;
584 const int xOffset = 7;
585
586 QRectF rect(xOffset,
587 conWidth + 20,
588 conWidth, conWidth);
589 shape.addEllipse(rect);
590 //shape.addRect(rect);
591
592 rect = QRectF(m_rect.right() - conWidth - xOffset,
593 conWidth + 20,
594 conWidth, conWidth);
595 shape.addEllipse(rect);
596 //shape.addRect(rect);
597 return shape;
598}
599
600QPainterPath Paths::interRect()
601{
602 QPainterPath path;
603 path.addRect(x: 132, y: 42, w: 1, h: 1);
604 return path;
605}
606
607QPainterPath Paths::bezierFlower()
608{
609 QPainterPath path;
610 path.moveTo(x: 0, y: 0);
611 path.cubicTo(ctrlPt1x: 0, ctrlPt1y: 50, ctrlPt2x: -25, ctrlPt2y: 75, endPtx: -50, endPty: 100);
612 path.closeSubpath();
613 path.moveTo(x: 0, y: 0);
614 path.cubicTo(ctrlPt1x: 0, ctrlPt1y: 50, ctrlPt2x: 25, ctrlPt2y: 75, endPtx: 50, endPty: 100);
615 path.closeSubpath();
616
617 path.moveTo(x: 0, y: 0);
618 path.cubicTo(ctrlPt1x: 0, ctrlPt1y: -50, ctrlPt2x: -25, ctrlPt2y: -75, endPtx: -50, endPty: -100);
619 path.closeSubpath();
620 path.moveTo(x: 0, y: 0);
621 path.cubicTo(ctrlPt1x: 0, ctrlPt1y: -50, ctrlPt2x: 25, ctrlPt2y: -75, endPtx: 50, endPty: -100);
622 path.closeSubpath();
623
624 path.moveTo(x: 0, y: 0);
625 path.cubicTo(ctrlPt1x: -50, ctrlPt1y: 0, ctrlPt2x: -75, ctrlPt2y: -25, endPtx: -100, endPty: -50);
626 path.closeSubpath();
627 path.moveTo(x: 0, y: 0);
628 path.cubicTo(ctrlPt1x: -50, ctrlPt1y: 0, ctrlPt2x: -75, ctrlPt2y: 25, endPtx: -100, endPty: 50);
629 path.closeSubpath();
630
631 path.moveTo(x: 0, y: 0);
632 path.cubicTo(ctrlPt1x: 50, ctrlPt1y: 0, ctrlPt2x: 75, ctrlPt2y: -25, endPtx: 100, endPty: -50);
633 path.closeSubpath();
634 path.moveTo(x: 0, y: 0);
635 path.cubicTo(ctrlPt1x: 50, ctrlPt1y: 0, ctrlPt2x: 75, ctrlPt2y: 25, endPtx: 100, endPty: 50);
636 path.closeSubpath();
637
638 return path;
639}
640
641QPainterPath Paths::clover()
642{
643 QPainterPath path;
644 path.moveTo(x: 50, y: 50);
645 path.lineTo(x: 100, y: 25);
646 path.lineTo(x: 100, y: 75);
647 path.lineTo(x: 0, y: 25);
648 path.lineTo(x: 0, y: 75);
649 path.lineTo(x: 50, y: 50);
650 path.lineTo(x: 75, y: 0);
651 path.lineTo(x: 25, y: 0);
652 path.lineTo(x: 75, y: 100);
653 path.lineTo(x: 25, y: 100);
654 path.lineTo(x: 50, y: 50);
655 return path;
656}
657
658QPainterPath Paths::ellipses()
659{
660 QPainterPath path;
661 path.addEllipse(x: 0, y: 0, w: 100, h: 100);
662 path.addEllipse(x: 0, y: 20, w: 100, h: 60);
663 path.addEllipse(x: 0, y: 40, w: 100, h: 20);
664 return path;
665}
666
667QPainterPath Paths::windingFill()
668{
669 QPainterPath path;
670 path.addRect(x: 0, y: 0, w: 100, h: 100);
671 path.addRect(x: 50, y: 25, w: 100, h: 50);
672 path.setFillRule(Qt::WindingFill);
673 return path;
674}
675
676QPainterPath Paths::oddEvenFill()
677{
678 QPainterPath path;
679 path.addRect(x: 0, y: 0, w: 100, h: 100);
680 path.moveTo(x: 50, y: 25);
681 path.lineTo(x: 50, y: 75);
682 path.lineTo(x: 150, y: 75);
683 path.lineTo(x: 150, y: 25);
684 path.lineTo(x: 50, y: 25);
685 path.setFillRule(Qt::OddEvenFill);
686 return path;
687}
688
689QPainterPath Paths::squareWithHole()
690{
691 QPainterPath path;
692 path.addRect(x: 0, y: 0, w: 100, h: 100);
693 path.addRect(x: 30, y: 30, w: 40, h: 40);
694 return path;
695}
696
697QPainterPath Paths::circleWithHole()
698{
699 QPainterPath path;
700 path.addEllipse(x: 0, y: 0, w: 100, h: 100);
701 path.addEllipse(x: 30, y: 30, w: 40, h: 40);
702 return path;
703}
704
705QPainterPath Paths::bezierQuadrant()
706{
707 QPainterPath path;
708 int d = 1;
709 for (int i = 25; i <= 85; i += 10) {
710 path.moveTo(x: 50, y: 100);
711 path.cubicTo(ctrlPt1x: 50, ctrlPt1y: i, ctrlPt2x: 50 + i* d / 2, ctrlPt2y: 0, endPtx: 50 + 50 * d, endPty: 0);
712 path.lineTo(x: 50 + 50 * d, y: 100);
713 path.closeSubpath();
714 }
715
716 return path;
717}
718

source code of qtbase/tests/auto/gui/painting/qpathclipper/paths.cpp